如果 MongoDB 批量更新适用于同一个文档,它们是否是原子的?

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)

...我知道如果第一次更新成功而第二次失败(在正常情况下应该是不可能的),第一次更新仍将应用于文档,这意味着批量写入不是严格原子的。但是,假设两个查询都成功,操作是原子的吗?例如,其他写入是否可以在两个操作之间交错?