对于以下命令,其中query
只能匹配一个文档(请注意默认情况下订购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)))));
...我理解如果第一次更新成功而第二次更新失败(在正常情况下应该是不可能的)first update will still be applied to the document,这意味着批量写入不是严格原子的。但是,假设两个查询都成功,那么操作是原子的吗?例如。是否可以在两个操作之间进行其他写入交错?