首页 > 解决方案 > CosmosDB 中不同的唯一键和分区键

问题描述

我们正在从 MongoDB 迁移到 CosmosDB。在 MongoDB 中,我们从未创建任何分区键,因为一切正常。但是在 CosmosDB 中,由于对 RU 的有效使用,我们需要创建分区键。

现在的问题是我们的集合中已经有一个复合唯一键,我们不想将其用作分区键(我也不确定在 cosmosDB 中是否可以使用复合分区键),因为我们通常不使用它进行搜索唯一键,但我们使用其他一些参数。

是否有可能创建与唯一键不同的分区键?

我试图这样做,但我总是得到错误 -

cannot create unique index over { abc : 1.0, xyz : 1.0} with shard key pattern { partitionKey : 1.0 }

我还尝试创建分区键,它是唯一键的子集,但这也会导致相同的错误。

是否有解决此问题的方法或有人知道更好的方法?

标签: mongodbazure-cosmosdbshardingunique-key

解决方案


尝试以这种方式为分片集合unique创建索引:

db.collection.createIndex( { "abc" : 1, "xyz" : 1, "partitionKey" : 1 }, {unique:true})

资源


推荐阅读