配置 Azure Cosmos DB for MongoDB 帐户功能
适用对象: MongoDB
这些功能是可在 API for MongoDB 帐户中添加或删除的功能。 其中许多功能会影响帐户行为,因此在启用或禁用功能之前,请务必充分了解它的影响。 默认情况下,一些功能已在 API for MongoDB 帐户上设置,并且无法更改或删除。 比如说 EnableMongo
功能。 本文演示如何启用和禁用功能。
先决条件
- 具有活动订阅的 Azure 帐户。 创建帐户。
- Azure Cosmos DB for MongoDB 帐户。 创建 API for MongoDB 帐户。
- Azure CLI 或 Azure 门户访问权限。 不支持通过 Azure 资源管理器更改功能。
可用功能
功能 | 说明 | 可移动 |
---|---|---|
DisableRateLimitingResponses |
允许 Mongo API 在服务器端重试速率限制请求,直到为 max-request-timeout 设置的值。 |
是 |
EnableMongoRoleBasedAccessControl |
支持为原生 MongoDB 基于角色的访问控制创建用户和角色。 | 否 |
EnableMongoRetryableWrites |
支持在帐户上进行可重试写入。 | 是 |
EnableMongo16MBDocumentSupport |
支持插入大小上限为 16 MB 的文档。 1 | 否 |
EnableUniqueCompoundNestedDocs |
支持嵌套字段的复合索引和唯一索引,前提是嵌套字段不是数组。 | 否 |
EnableTtlOnCustomPath |
提供对集合中的任一字段设置自定义生存时间 (TTL) 的功能。 不支持在部分唯一索引属性中设置 TTL。 2 | 否 |
EnablePartialUniqueIndex |
支持唯一部分索引,使你可以更灵活地指定要为文档中的哪些确切字段编制索引。 | 否 |
注意
1 在具有客户管理的密钥 (CMK) 的 Azure Cosmos DB for MongoDB 帐户中,无法启用此功能。
注意
2 在具有连续备份的 Azure Cosmos DB for MongoDB 帐户中,无法启用此功能。
重要
使用 Azure 资源管理器更改功能不适用于 Azure Cosmos DB for MongoDB 帐户。
启用功能
使用 az cosmosdb show 检索现有帐户功能:
az cosmosdb show \ --resource-group <azure_resource_group> \ --name <azure_cosmos_db_account_name>
你应该会看到与此示例输出类似的功能部分:
"capabilities": [ { "name": "EnableMongo" } ]
查看默认功能。 在此示例中,唯一设置的功能是
EnableMongo
。在数据库帐户上设置新功能。 功能列表应包括你希望保留的、先前启用的功能列表。
只会在帐户上设置显式命名的功能。 例如,如果要将
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")
禁用功能
使用
az cosmosdb show
检索现有帐户功能:az cosmosdb show \ --resource-group <azure_resource_group> \ --name <azure_cosmos_db_account_name>
你应该会看到与此示例输出类似的功能部分:
"capabilities": [ { "name": "EnableMongo" }, { "name": "DisableRateLimitingResponses" } ]
检查当前设置的所有功能。 在此示例中,设置了两个功能:
EnableMongo
和DisableRateLimitingResponses
。从数据库帐户中删除其中一项功能。 功能列表应包括你希望保留的、先前启用的功能列表。
只会在帐户上设置显式命名的功能。 例如,如果要删除
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")
后续步骤
- 了解如何将 Studio 3T 与 Azure Cosmos DB for MongoDB 配合使用。
- 了解如何将 Robo 3T 与 Azure Cosmos DB for MongoDB 配合使用。
- 使用 Azure Cosmos DB for MongoDB 浏览 MongoDB 示例。
- 尝试为迁移到 Azure Cosmos DB 进行容量计划? 可以使用有关现有数据库群集的信息进行容量规划。
- 如果你只知道现有数据库群集中的 vCore 和服务器数量,请了解如何根据 vCore 或 vCPU 数量估算请求单位数。
- 如果你知道当前数据库工作负载的典型请求速率,请了解如何使用 Azure Cosmos DB 容量规划工具估算请求单位数。