community.mongodb.mongodb_index 模块 – 在 MongoDB 集合上创建或删除索引。

注意

此模块是 community.mongodb 集合 (版本 1.7.8) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.mongodb。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定: community.mongodb.mongodb_index

community.mongodb 1.0.0 中的新增功能

概要

  • 在 MongoDB 集合上创建或删除索引。

  • 支持多个索引选项,例如唯一、稀疏和部分索引。

  • 仅通过名称验证索引是否存在。

要求

在执行此模块的主机上需要以下要求。

  • pymongo

参数

参数

注释

atlas_auth

布尔值

用于 MongoDB Atlas 实例的认证路径

选项

  • false ← (默认)

  • true

auth_mechanism

字符串

身份验证类型。

选项

  • "SCRAM-SHA-256"

  • "SCRAM-SHA-1"

  • "MONGODB-X509"

  • "GSSAPI"

  • "PLAIN"

connection_options

列表 / 元素=任意

附加连接选项。

以字典或字符串列表的形式提供,键值对用’=’分隔。

indexes

列表 / 元素=任意 / 必填

要创建或删除的索引列表

login_database

字符串

存储登录凭据的数据库。

默认值: "admin"

login_host

字符串

运行要登录的 MongoDB 实例的主机。

默认值: "localhost"

login_password

字符串

用于身份验证的密码。

当指定了 *login_user* 时为必填。

login_port

整数

要登录的 MongoDB 服务器端口。

默认值: 27017

login_user

字符串

要登录的 MongoDB 用户。

当指定了 *login_password* 时为必填。

replica_set

字符串

要连接到的副本集(自动连接到主节点以进行写入)。

ssl

别名:tls

布尔值

连接到数据库时是否使用 SSL 连接。

选项

  • false ← (默认)

  • true

ssl_ca_certs

别名:tlsCAFile

字符串

ssl_ca_certs 选项接受 CA 文件的路径。

ssl_cert_reqs

别名:tlsAllowInvalidCertificates

字符串

指定是否需要连接另一端的证书,以及如果提供证书是否会进行验证。

选项

  • "CERT_NONE"

  • "CERT_OPTIONAL"

  • "CERT_REQUIRED" ← (默认)

ssl_certfile

别名:tlsCertificateKeyFile

字符串

使用 ssl_certfile 选项提供客户端证书。

ssl_crlfile

字符串

ssl_crlfile 选项接受 CRL 文件的路径。

ssl_keyfile

字符串

客户端证书的私钥。

ssl_pem_passphrase

别名:tlsCertificateKeyFilePassword

字符串

解密加密私钥的密码。

strict_compatibility

布尔值

强制执行 pymongo 和 MongoDB 软件版本的严格要求

选项

  • false

  • true ← (默认)

备注

注意

  • 远程主机上需要 pymongo Python 包,版本 4+。

示例

- name: Create a single index on a collection
  community.mongodb.mongodb_index:
    login_user: admin
    login_password: secret
    indexes:
      - database: mydb
        collection: test
        keys:
          - username: 1
            last_login: -1
        options:
          name: myindex
        state: present

- name: Drop an index on a collection
  community.mongodb.mongodb_index:
    login_user: admin
    login_password: secret
    indexes:
      - database: mydb
        collection: test
        options:
          name: myindex
        state: absent

- name: Create multiple indexes
  community.mongodb.mongodb_index:
    login_user: admin
    login_password: secret
    indexes:
      - database: mydb
        collection: test
        keys:
          - username: 1
            last_login: -1
        options:
          name: myindex
        state: present
      - database: mydb
        collection: test
        keys:
          - email: 1
            last_login: -1
        options:
          name: myindex2
        state: present

- name: Add a unique index
  community.mongodb.mongodb_index:
    login_port: 27017
    login_user: admin
    login_password: secret
    login_database: "admin"
    indexes:
      - database: "test"
        collection: "rhys"
        keys:
          username: 1
        options:
          name: myuniqueindex
          unique: true
        state: present

- name: Add a ttl index
  community.mongodb.mongodb_index:
    login_port: 27017
    login_user: admin
    login_password: secret
    login_database: "admin"
    indexes:
      - database: "test"
        collection: "rhys"
        keys:
          created: 1
        options:
          name: myttlindex
          expireAfterSeconds: 3600
        state: present

- name: Add a sparse index
  community.mongodb.mongodb_index:
    login_port: 27017
    login_user: admin
    login_password: secret
    login_database: "admin"
    indexes:
      - database: "test"
        collection: "rhys"
        keys:
          last_login: -1
        options:
          name: mysparseindex
          sparse: true
        state: present

- name: Add a partial index
  community.mongodb.mongodb_index:
    login_port: 27017
    login_user: admin
    login_password: secret
    login_database: "admin"
    indexes:
      - database: "test"
        collection: "rhys"
        keys:
          last_login: -1
        options:
          name: mypartialindex
          partialFilterExpression:
            rating:
              $gt: 5
        state: present

- name: Add a index in the background (background option is deprecated from 4.2+)
  community.mongodb.mongodb_index:
    login_port: 27017
    login_user: admin
    login_password: secret
    login_database: "admin"
    indexes:
      - database: "test"
        collection: "rhys"
        options:
          name: idxbackground
        keys:
          username: -1
        backgroud: true
        state: present

- name: Check creating 5 index all with multiple options specified
  community.mongodb.mongodb_index:
    login_port: 27017
    login_user: admin
    login_password: secret
    login_database: "admin"
    indexes:
      - database: "test"
        collection: "indextest"
        options:
          name: "idx_unq_username"
          unique: true
        keys:
          username: -1
        state: present
      - database: "test"
        collection: "indextest"
        options:
          name: "idx_last_login"
          sparse: true
        keys:
          last_login: -1
        state: present
      - database: "test"
        collection: "indextest"
        options:
          name: "myindex"
        keys:
          first_name: 1
          last_name: -1
          city: 1
        state: present
      - database: "test"
        collection: partialtest
        options:
          name: "idx_partialtest"
          partialFilterExpression:
            rating:
              $gt: 5
        keys:
          rating: -1
          title: 1
        state: present
      - database: "test"
        collection: "wideindex"
        options:
          name: "mywideindex"
        keys:
          email: -1
          username: 1
          first_name: 1
          last_name: 1
          dob: -1
          city: 1
          last_login: -1
          review_count: 1
          rating_count: 1
          last_post: -1
        state: present

返回值

常见返回值已记录在 此处,以下是此模块特有的字段

描述

changed

布尔值

指示模块已更改某些内容。

返回值:当模块已更改某些内容时。

failed

布尔值

指示模块已失败。

返回值:当模块遇到错误时。

indexes_created

列表 / 元素=字符串

已创建的索引列表。

返回值:始终

示例: ["myindex", "myindex2"]

indexes_dropped

列表 / 元素=字符串

已删除的索引列表。

返回值:始终

示例: ["myindex", "myindex2"]

作者

  • Rhys Campbell (@rhysmeister)