首页 > 解决方案 > Azure documentDB 是否提供条件写入?

问题描述

我想知道 Azure documentDB 是否提供条件写入?我的意思是当某些条件满足时进行写操作。

例如,如果我在 DB 中有多个资源,我想在 DB 中至少有 2 个资源时删除一个资源。文件似乎说要检查 etag 是否匹配。但是,如果在数据库中至少有 3 个资源的情况下,user1 尝试使用 etag version1 删除一个资源,但 user2 尝试添加资源并更新 etag。那么删除操作就会失败。

标签: azureazure-cosmosdb

解决方案


您在问题中描述的实际上是我认为的一致性问题。关于替换一致性,您可以在标头中设置If-Match 属性,该属性用于使操作成为乐观并发的条件。也就是说,仅当指定的 etag 与数据库中的当前版本匹配时,才会更新文档。该值应设置为资源的 etag 值。

此外,根据我的知识,应该没有这样的内置机制。


推荐阅读