配置 Azure Cosmos DB for MongoDB 帐户功能

适用对象: MongoDB

这些功能是可在 API for MongoDB 帐户中添加或删除的功能。 其中许多功能会影响帐户行为,因此在启用或禁用功能之前,请务必充分了解它的影响。 默认情况下,一些功能已在 API for MongoDB 帐户上设置,并且无法更改或删除。 比如说 EnableMongo 功能。 本文演示如何启用和禁用功能。

先决条件

可用功能

功能 说明 可移动
DisableRateLimitingResponses 允许 Mongo API 在服务器端重试速率限制请求,直到为 max-request-timeout 设置的值。
EnableMongoRoleBasedAccessControl 支持为原生 MongoDB 基于角色的访问控制创建用户和角色。
EnableMongoRetryableWrites 支持在帐户上进行可重试写入。
EnableMongo16MBDocumentSupport 支持插入大小上限为 16 MB 的文档。
EnableUniqueCompoundNestedDocs 支持嵌套字段的复合索引和唯一索引,前提是嵌套字段不是数组。
EnableTtlOnCustomPath 提供对集合中的任一字段设置自定义生存时间 (TTL) 的功能。 不支持在部分唯一索引属性中设置 TTL。 �
EnablePartialUniqueIndex 支持唯一部分索引,使你可以更灵活地指定要为文档中的哪些确切字段编制索引。
EnableUniqueIndexReIndex 启用对 Cosmos DB for MongoDB RU 的唯一索引重新编制索引的支持。 �

注意

无法在具有连续备份的 Azure Cosmos DB for MongoDB 帐户中启用此功能。

启用功能

  1. 使用 az cosmosdb show 检索现有帐户功能:

    az cosmosdb show \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name>
    

    你应该会看到与此示例输出类似的功能部分:

    "capabilities": [
      {
        "name": "EnableMongo"
      }
    ]
    

    查看默认功能。 在此示例中,唯一设置的功能是 EnableMongo

  2. 在数据库帐户上设置新功能。 功能列表应包括你希望保留的、先前启用的功能列表。

    只会在帐户上设置显式命名的功能。 例如,如果要将 DisableRateLimitingResponses 功能添加到前面的示例,请使用 az cosmosdb update 命令和 --capabilities 参数,并列出要在帐户中拥有的所有功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities EnableMongo DisableRateLimitingResponses
    

    重要

    功能列表必须始终一个不漏地指定要启用的所有功能。 这包括已为要保留的帐户启用的功能。 在此示例中,EnableMongo 功能已启用,因此必须同时指定 EnableMongo 功能和 DisableRateLimitingResponses 功能。

    提示

    如果你使用的是 PowerShell,且当你使用前面的命令时出现了错误信息,不如尝试使用 PowerShell 数组来列出功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities @("EnableMongo","DisableRateLimitingResponses")
    

禁用功能

  1. 使用 az cosmosdb show 检索现有帐户功能:

    az cosmosdb show \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name>
    

    你应该会看到与此示例输出类似的功能部分:

    "capabilities": [
      {
        "name": "EnableMongo"
      },
      {
        "name": "DisableRateLimitingResponses"
      }
    ]
    

    检查当前设置的所有功能。 在此示例中,设置了两个功能:EnableMongoDisableRateLimitingResponses

  2. 从数据库帐户中删除其中一项功能。 功能列表应包括你希望保留的、先前启用的功能列表。

    只会在帐户上设置显式命名的功能。 例如,如果要删除 DisableRateLimitingResponses 功能,你会使用 az cosmosdb update 命令并列出要保留的功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities EnableMongo
    

    提示

    如果你使用的是 PowerShell,且当你使用此命令时出现了错误信息,不如尝试使用 PowerShell 数组来列出功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities @("EnableMongo")
    

后续步骤