在Cosmos DB中创建跨分区唯一约束

时间:2018-04-02 19:59:31

标签: nosql azure-cosmosdb

我正在使用按帐户ID分区的Cosmos数据库集合,我需要阻止添加重复的序列号。

因此,如果帐号为ID 123的Johnny尝试添加序列号为A562的项目,则帐户ID为987的Bill无法添加序列号为A562的项目。但是,它们可能不在同一个分区中。

有没有办法确保跨分区的唯一性,而无需先通过每个分区进行昂贵的搜索?

1 个答案:

答案 0 :(得分:2)

基于官方文档Unique keys in Azure Cosmos DB:通过在创建容器时创建唯一键策略,可以确保每个分区键的一个或多个值的唯一性。

因此,到目前为止,唯一密钥无法确保跨分区的唯一性。

我建议您使用sql SELECT VALUE COUNT(1) FROM c where c.serialNumber = '***'检查结果是否大于2

希望它对你有所帮助。