我正在使用单个副本集MongoDB。我的问题是,如果有多个客户端同时写入同一文档,那么写入顺序将是有关的。
场景: 客户端1-在t0写入doc1 客户端2-在t0 + delta处写入doc1
MongoDB是否可以保证发生客户端1写入然后发生客户端2写入?
我已经从MongoDB中读取了多个文档,并且怀疑不支持写入顺序,因此可能首先发生来自两个客户端中任何一个的写入。但是我只想确认一下。
答案 0 :(得分:0)
如果您使用wiredtiger存储引擎,则该订单将按如下所述进行维护。
1)客户端1将对doc1进行互斥写锁定,因此在释放该锁定之前,不允许对doc1进行任何其他写操作。
2)一旦客户端1完成写操作并释放了锁定,客户端2将对doc1进行排他性写锁定,然后执行与步骤1相同的过程。
因此,此处的订单将得到维护。