【发布时间】:2021-06-15 14:58:48
【问题描述】:
下面是我在 Cosmos Db 中添加 json 文档的代码。我的分区键是 TypeId,TypeId 和 CValue 的组合创建了一个唯一值。现在下面的代码能够在我的 cosmosDb 中添加文档,但它也允许添加重复的项目,我想避免这种情况并想知道我该如何处理?每当添加新文档时,它会检查具有相同唯一键(TypeId 和 CValue)的文档是否存在,如果存在,则覆盖或不添加它。
var content = JsonConvert.DeserializeObject<JObject>( lines );
var client = new DocumentClient( new Uri( DbInstance ),Key );
await client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(
Database, Collection ),
content);
content 是一个 JObject,这里是 content 的示例输出:
"Classes": {
"Subjects": {
"Name": "testA",
"TypeId": "AS88QW",
"Public": "No"
},
"Sections": {
"Scopes": true,
"CValue": [12,12,1]
}
}
【问题讨论】:
-
您可以在创建容器时创建唯一键。你调查过吗?
-
根据您之前的@987654321@,我假设您的容器的分区键是
Classes/Subjects/TypeId。对吗? -
我查看了它,但没有这样的代码创建唯一键。你是对的关于分区键
-
唯一键约束被定义为容器创建的一部分,即您在创建容器时定义唯一键约束。
-
这里我需要两个键的组合作为唯一键
标签: c# azure-cosmosdb