我使用的是单个副本集mongodb。我的问题是,如果有多个客户机同时写入同一个文档,那么就要考虑写入顺序。
脚本: 客户端1-在t0写入doc1 客户端2-在t0+delta写入doc1
MongoDB会保证客户机1写,然后客户机2写吗?
我从MongoDB中读取了多个文档,怀疑不支持写顺序,因此可以先从这两个客户机中的任何一个进行写操作。但我只是想确认一下。
如果您使用的是wiredtiger存储引擎,那么将按照下面所述维护订单。
1)客户端1将对doc1进行独占写入锁定,因此在释放该锁定之前,不允许对doc1执行其他写入操作。
2)一旦客户机1完成写入并释放锁,客户机2将在doc1上获得独占写入锁,并遵循与步骤1相同的过程。
所以这里的秩序会维持下去。