首页 > 解决方案 > Cosmos DB 集合查询中的行锁等价物

问题描述

我有以下要求:两个应用程序实例通过检索具有属性“状态”=“未处理”的文档来处理 Cosmos DB 集合文档。

以下是步骤: - 读取具有属性“status”=“未处理”的文档 - 将检索到的文档标记为“status”=“inprogress”,以便其他应用程序不会检索到同一组文档 - 处理文档申请并将文档状态更新为“已处理”

在 SQL 世界中,我们可以通过对选定的行应用行锁并将状态列更新为不会被其他应用程序获取的值来完成此操作。我们如何在 Cosmos DB 中实现这一点?

谢谢

标签: sqlsql-serverstored-proceduresazure-cosmosdb-sqlapi

解决方案


AFAIK,这种功能在 Azure Cosmos DB 中不可用。两个应用程序都将能够读取该文档。

但是,您可以做的是防止应用程序覆盖其他应用程序所做的更改。这是通过Optimistic Concurrency Control在 Cosmos DB 中使用来完成的。


推荐阅读