首页 > 解决方案 > 使用 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命令始终返回以下错误:

无法修改唯一索引。要更改唯一索引,请删除该集合并重新创建一个新集合。

我已经使用模拟器在打开和关闭预置吞吐量的数据库上进行了尝试,结果相同。

有没有人能够做到这一点?

标签: azureazure-cosmosdbazure-cosmosdb-mongoapi

解决方案


按照@David的话,我也成功地测试了你的命令。根据文档中的声明:

目前,只有当集合为空(不包含文档)时才能创建唯一索引。

您可以检查您的收藏是否为空。另一点是,有时模拟器可能与真实版本有不同的行为。因此,您可以尝试使用官方数据库执行命令。


推荐阅读