You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cosmos DB for MongoDB各部署模式下可靠创建唯一索引?

Cosmos DB for MongoDB 唯一索引创建规则总结

以下是不同部署模式下,创建唯一索引的明确限制,无需试错即可判断是否允许操作:

场景一:为已有文档的集合添加唯一索引

执行命令:

db.createCollection("testCollection")
db.testCollection.insertOne({someField: "value"})
db.testCollection.createIndex({someField: 1}, {unique: true})

各环境结果:

  • MongoDB原生:执行成功
  • Cosmos DB for MongoDB (vCore):执行成功
  • Cosmos DB for MongoDB (RU模式):执行失败,报错:

Cannot create unique index when collection contains documents

场景二:为空集合添加唯一索引

执行命令:

db.createCollection("anotherCollection")
db.anotherCollection.createIndex({someField: 1}, {unique: true})

各环境结果:

  • MongoDB原生:执行成功
  • Cosmos DB for MongoDB (vCore):执行成功
  • Cosmos DB for MongoDB (RU模式,周期性备份):执行成功
  • Cosmos DB for MongoDB (RU模式,连续备份/点恢复):执行失败,报错:

Error=13, Details='Response status code does not indicate success: Forbidden (403); Substatus: 0; ActivityId: ; Reason: (Message: {"Errors":["The unique index cannot be modified. To change the unique index, remove the collection and re-create a new one."]}

核心规则总结

  1. vCore模式 & MongoDB原生:无特殊限制,空集合或已有文档的集合均可创建唯一索引(仅需确保已有文档的字段值无重复)
  2. RU模式:
    • 集合存在文档时,禁止创建任何唯一索引
    • 集合为空时:
      • 周期性备份策略:允许创建唯一索引
      • 连续备份(点恢复)策略:必须在集合创建时同时定义唯一索引,后续无法添加或修改唯一索引

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:03:28