嗨,我正在使用 mongodb 作为我的数据库。我的问题是如何确保当我查询一个文档或大量文档时。例子:
mongo.GetCollection("orders").Find(Query.EQ("OrderStatus", "unshiped")).ToList();
如何确保此列表中的文档已锁定并且没有人可以编辑它们以及当我将它们循环为真然后保存它们时我在代码中对这些记录所做的一切它应该解锁它
嗨,我正在使用 mongodb 作为我的数据库。我的问题是如何确保当我查询一个文档或大量文档时。例子:
mongo.GetCollection("orders").Find(Query.EQ("OrderStatus", "unshiped")).ToList();
如何确保此列表中的文档已锁定并且没有人可以编辑它们以及当我将它们循环为真然后保存它们时我在代码中对这些记录所做的一切它应该解锁它
MongoDB 支持对单个文档的原子操作。由于多种原因,MongoDB 不支持传统的锁定和复杂事务:
- 首先,在分片环境中,分布式锁可能既昂贵又缓慢。Mongo DB 的目标是轻量和快速。
- 我们不喜欢死锁的概念。我们希望系统简单且可预测,不会出现这些意外。
- 我们希望 Mongo DB 能够很好地解决实时问题。如果执行的操作可能会锁定大量数据,它可能会在很长一段时间内停止一些小型轻量查询。
我认为你最好的选择是locked
在你的文件中添加一个属性,然后从那里开始。
您可以在集合中添加 isLocked 字段。在更新之前,您可以锁定和解锁以完成工作。如果您想要更特殊的锁定机制,请在 LockedId 字段中添加 Guid。