首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB乐观并发控制与.NET

MongoDB乐观并发控制与.NET
EN

Stack Overflow用户
提问于 2015-11-25 23:21:29
回答 1查看 4.4K关注 0票数 10

使用.NET MongoDB API (MongoDB.Driver),建议实现乐观并发控制的方法是什么?例如,是否有类似于Server的ROWVERSION/时间戳的特性,例如,每当文档更改时自动更新的属性?还是有触发机制?或者其他机制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 23:37:07

在MongoDB中,没有任何关于乐观并发的内置内容。如果你需要的话,你需要自己实现它。

您可以通过添加一个DateTime时间戳,在执行更新之前读取它,并使用该时间戳作为更新的筛选器来实现这一点。如果在您有机会更新之前更改了时间戳,则更新操作将无法找到文档。

例如:

代码语言:javascript
复制
UpdateResult updateResult;
do
{
    var document = await collection.Find(_ => _.Id == id).SingleAsync(); // Get the current document
    updateResult = await collection.UpdateOneAsync(_ => _.Id == id && _.TimeStamp == document.TimeStamp, Builders<Item>.Update...); // Update the document only if the timestamp is the same
} while (updateResult.ModifiedCount == 0); // Try until an update was successfull
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33928136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档