mongodb - 在 CosmosDB (Mongo API) 上创建唯一索引错误
问题描述
我正在尝试在我们的 CosmosDB 上的某些集合上创建一个唯一索引。每个 MS 文档https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-indexing:只有当集合为空(不包含文档)时才能创建唯一索引。
所以我清理了集合上的所有数据,但是我遇到了错误,消息是:
Error=13, Details='响应状态码不表示成功:Forbidden (403); 子状态:0;ActivityId: xxx, Reason: (Message: {"serializedCollection":"{"Errors":["无法修改唯一索引。要更改唯一索引,请移除集合并重新创建一个新集合。"]}" ,"serializedOffer":"","serializedPartitionKeyRanges":[],"serializedPartitions":[],"collectionRemoteStorageSecurityIdentifier":"xxx","collectionChildResourceNameLimitInBytes":-1,"collectionChildResourceContentLengthLimitInKB":-1,"uniqueIndexNameEncodingMode":0, “uniqueIndexReIndexingState”:0} ActivityId:xxx,请求 URI:/apps/xxx/xxx/partitions/xxx/replicas/xx,RequestStats:RequestStartTime:2020-12-02T23:25:04.2104773Z,
然后我尝试只添加字段 name ,然后它抛出了如下错误:
集合包含文档时无法创建唯一索引
我们正在使用支持 Mongodb 3.6 的 CosomosDB。我正在使用命令: db.CollectName.createIndex({"fieldname" : 1}, {"unique" : true } )
任何想法为什么我会收到错误?
谢谢,
解决方案
不知道发生了什么,但它现在突然开始工作。所以步骤是清理集合中的数据。运行脚本以添加唯一索引,然后重新加载数据。我正在使用 Robo 3t 连接到 CosmosDB 并通过 Robo3T 命令行运行所有命令。
推荐阅读
- excel - 如何在数据透视表中创建汇总商店收入的范围
- python - 在函数结束之前分配 Python 变量
- html - 如何缩短边框?
- postgresql - 有没有办法从“plpy.error”引发的异常中删除“plpy.Error:”前缀?
- r - lapply 和 mutate_all/for 循环
- jquery - 使用 setInterval 分别显示 MySQL 表中的随机记录
- iis - 为什么 EnsureDispatch 创建新实例?
- html - 溢出的内容似乎仍以页面宽度计算
- python - 如何使用理解将列表项转换为字典键值对
- asp.net - 需要 ASP.NET 网站架构对用户来说是通用的