【发布时间】:2015-02-13 23:49:29
【问题描述】:
我知道您不能在 MongoDB 中进行事务,并且认为不需要它,因为所有内容都会锁定整个数据库或集合,我不确定是哪个。但是,您如何执行以下操作?
如何在 mongodb 中将多个插入、更新、删除或选择查询链接在一起,以便可能对同一数据进行操作的其他查询等到这些查询完成?一个类比是 ms sql server 中的序列化事务隔离。
更多..
我想在集合 A 中插入/更新记录并更新集合 B 中的记录,然后读取集合 A 和 B,但我不希望任何人(进程或线程)读取或写入集合 A 或 B,直到 BOTH A 和 B 已被第一个查询更新或插入。
【问题讨论】:
-
理想情况下,如果您有原子性保证,那么您可以在 MongoDB 中构建您的数据,这样您就可以通过单个文档操作来实现原子性。在不了解您的用例的情况下,我无法帮助您做到这一点,但您可能想了解其他可以使用的技巧,例如 two-phase commits。
标签: mongodb serialization transactions isolation