Cosmos DB:收集和原子计数器

时间:2018-09-05 13:00:18

标签: nosql azure-cosmosdb

我有一个Cosmos DB和一个像这样的集合:

{
  "name" : "Marc Zukerberg",
  "follower" : "100"
}

我正在寻找一种增加“跟随者”计数的方法,但是以一种 ATOMIC 的方式进行,因为很多增加可以同时发生!

有可能吗?

在NoSQL中是否有一些针对这种情况的模式?

1 个答案:

答案 0 :(得分:2)

CosmosDB中的每个文档都有一组系统属性。

其中之一是etagetag是一个属性,每当文档本身以某种方式更改时,其值都会更改。

这可用于提供乐观的并发控制。

这可以通过将AccessCondition对象与Replace之类的操作一起使用来实现。

这样,您可以保证etag匹配,这意味着在执行更新操作时文档不会更改。

有关如何执行此操作的示例,请参见here