更新具有不同文档类型但相同分区键的集合中的文档

Update document in a collection with different document types, but same partition key

我有一个 cosmos db 文档集合,其中包含不同类型的文档,但共享相同的分区键。有没有办法通过 C# 更新具有相同分区键但不同文档类型的文档?在我见过的所有示例中,deleting/updating 一个文档需要一个唯一的分区 key/document uri。但是,在我的例子中,有 3 个文件具有相同的分区键。

下面是一个集合(借自https://docs.microsoft.com/en-us/azure/cosmos-db/modeling-data),其中包含按'bookId' 划分的2 种类型的文档。

我想知道是否有办法 update/delete 使用分区键和 type/other 条件的文档。

示例 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"
}

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

示例:

Replace an item

Delete an item

Write stored procedures

希望这对您有所帮助。