elh*_*efe 5 atomic atomicity mongodb bulkupdate interleave
对于以下命令, wherequery只能匹配一个文档(请注意,bulkWrite()默认情况下是有序的):
final BulkWriteResult res = db.getCollection("mycol").bulkWrite(Arrays.asList(
new UpdateOneModel<>(query,
new Document("$addToSet", new Document("some_things", things))),
new UpdateOneModel<>(query,
new Document("$pull", new Document("some_things", otherthings)))));
Run Code Online (Sandbox Code Playgroud)
...我知道如果第一次更新成功而第二次失败(在正常情况下应该是不可能的),第一次更新仍将应用于文档,这意味着批量写入不是严格原子的。但是,假设两个查询都成功,操作是原子的吗?例如,其他写入是否可以在两个操作之间交错?