【发布时间】:2018-02-13 21:42:08
【问题描述】:
我在 C# 中有一个 VS2017 解决方案,我正在使用 IDocumentClient.UpsertDocumentAsync 将一些文档 Upsert 到我的 cosmosdb documentdb 集合中。但我注意到它实际上是在创建具有相同 id 的新文档,而集合中已经有一个具有该 id 的文档。
现在,在更新插入具有相同 id 的新文档后,查询结果如下所示:
select * from c where c.id = "aaaa-bbbb-cccc"
[
{
"id": "aaaa-bbbb-cccc",
"firstname": "john",
"lastname": "doe"
},
{
"id": "aaaa-bbbb-cccc",
"firstname": "john",
"lastname": "doe",
"age": "35"
}
]
我对这种行为感到很困惑;也许我没有正确理解“upsert”的定义。如果有人能为我澄清这一点,将不胜感激。
【问题讨论】:
-
你正在更新插入的对象模型是什么样的?
-
你的分区键是什么?两个文档的值是否不同?
-
@AravindKrishnaR。是的,实际上删除的字段(年龄)是分区键。
-
谢谢。我想我明白发生了什么。把答案贴在下面。
-
@DeveloperInToronto 有什么更新吗?
标签: c# azure azure-cosmosdb upsert