使用不同的文档类型,但使用相同的分区键更新集合中的文档

时间:2020-06-12 18:32:47

标签: azure-cosmosdb azure-cosmosdb-sqlapi

我有一个cosmos db文档集合,其中包含不同类型的文档,但是共享相同的分区键。有没有一种方法可以通过C#更新具有相同分区键但具有不同文档类型的文档?在我所看到的所有示例中,删除/更新文档都需要唯一的分区键/文档uri。但是,就我而言,有3个文档具有相同的分区键。

下面是一个集合(从https://docs.microsoft.com/en-us/azure/cosmos-db/modeling-data借来),其中有两种类型的文档按'bookId'进行分区。

我想知道是否可以使用分区键和类型/其他条件来更新/删除文档。

示例1:使用bookId:“ b1”更新文档,键入:“ review”,id:“ r1”

示例2:删除所有bookId为“ b1”的文档

Book documents:
{
    "id": "b1",
    "name": "Azure Cosmos DB 101",
    "bookId": "b1",
    "type": "book"
}

Review documents:
{
    "id": "r1",
    "content": "This book is awesome",
    "bookId": "b1",
    "type": "review"
},
{
    "id": "r2",
    "content": "Best book ever!",
    "bookId": "b1",
    "type": "review"
}

1 个答案:

答案 0 :(得分:1)

Cosmos不支持基于集合的插入/更新/删除操作。您必须从客户端单独调用这些操作,或者可以编写存储过程并传递查找相关数据所需的任何内容,但是您仍然要单独调用这些操作,而只是在服务器端。

示例:

Replace an item

Delete an item

Write stored procedures

希望这会有所帮助。