azure - 使用 Mongo API 在 Cosmos DB 中的共享吞吐量集合上创建唯一索引
问题描述
我已尝试按照Microsoft Docs中的说明在分区集合上创建唯一索引:
db.runCommand({shardCollection: db.coll._fullName, key: { university: "hashed"}});
db.coll.createIndex( { "student_id" : 1, "university" : 1 }, {unique:true})
集合已创建,但该createIndex
命令始终返回以下错误:
无法修改唯一索引。要更改唯一索引,请删除该集合并重新创建一个新集合。
我已经使用模拟器在打开和关闭预置吞吐量的数据库上进行了尝试,结果相同。
有没有人能够做到这一点?
解决方案
按照@David的话,我也成功地测试了你的命令。根据文档中的声明:
目前,只有当集合为空(不包含文档)时才能创建唯一索引。
您可以检查您的收藏是否为空。另一点是,有时模拟器可能与真实版本有不同的行为。因此,您可以尝试使用官方数据库执行命令。
推荐阅读
- vim - 在多行选择之前粘贴
- python - 在 Django 中,如何使用基于函数的视图来实现 CreateView 的功能?
- angular - 使用 dart2js 在 Angular(不是 AngularDart)中使用 Dart
- ruby-on-rails - Datatable - 将行数据从 html 更改为纯文本
- python - 将预定义函数的输入从 url 更改为本地文件
- javascript - 如何在javascript中拆分值?
- java - 具有依赖关系的 Docker maven:在 docker 映像中构建时,脱机不拾取本地 jars
- python - 提取字母并填充单词的斑点
- ios - UICollectionView:最后一行的项目之间不需要的空间
- docusignapi - Docusign 信封 AuthoritativeCopy 始终为空