我正在尝试使用 ReplaceItemAsync 对现有项目执行更新。
我已经添加了我的partitionKey的值,但我仍然收到错误,并且真的不确定为什么。我尝试过根本不设置分区键,而只使用 app 和 app.id,并且我还尝试将分区键设置为路径。
我已检查数据库门户,ID 匹配。
在(cosmos 门户的)第三张图片中,我尝试更新 json 我用于分区键的值是新更新的 json,并且在其中收到 404 错误。我尝试使用现有的尚未更新的 json 的值,但随后抛出了 400 bad request 错误。
图片 1: [
最佳答案
您收到 404 的原因是因为您使用了 item.ToString() 值,所以更新后的对象的分区键与原始对象的分区键不同。
Cosmos 不会在此分区键中找到具有提供的 ID 的项目,因此返回 404。
与 SQL 相反,cosmos 集合中的 id 只能在其分区内唯一。集合中文档的唯一标识符是 id 和分区键的组合。
关于c# - Cosmos DB 响应 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75833842/