2012-04-30 18 views
2

嗨,我使用MongoDB作为我的数据库。我的问题是我怎样才能确保当我做一个文件或许多文件的查询。例如:MongoDB与C#确保记录在工作时锁定

mongo.GetCollection("orders").Find(Query.EQ("OrderStatus", "unshiped")).ToList(); 

如何确保是在此列表中的文件被锁定,没有人可以对其进行编辑和我做的代码与此记录什么都当我环路他们真实,然后将其保存,应该解锁它

回答

0

MongoDB支持对单个文档进行原子操作。 MongoDB的不 不支持传统的锁定和复杂交易的原因有若干 :

  • 首先,在分片环境,分布式锁可能是昂贵的和缓慢的。 Mongo DB的目标是轻量且快速。
  • 我们不喜欢死锁的概念。我们希望系统简单且可预测,无需这些惊喜。
  • 我们希望Mongo DB能够很好地处理实时问题。如果某个操作可能会执行锁定大量数据的操作,则可能会在一段较长时间内停止某些小型轻量级查询。

我认为最好的办法是增加一个locked属性为您的文件,并从那里走。