MongoDB更新原子操作

时间:2016-11-01 04:51:03

标签: mongodb mongoose mongo-java-driver

我正在学习MongoDB并将URL缩短器实现为POC。我正在阅读NodeJS / Mongoose的教程并看到了这个方法:

Model.findByIdAndUpdate(id, [update], [options], [callback])

更新AND回调操作都是原子的吗?或者只是更新操作原子?

如果两者都是原子的,如何在Java中执行此操作? Mongo-java-driver有这个方法

collection.findOneAndUpdate(query, update, options);

但显然没有支持回调。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:-2)

来自version 3.0的mongo java驱动程序中提供了回调。如果您使用的是较低版本的mongo java驱动程序,请将其升级到3.0或更高版本。

请参阅此post了解findOneAndUpdate回调示例

其他有用的帖子

https://github.com/mongodb/mongo-java-driver/tree/master/driver-async

http://www.programcreek.com/java-api-examples/index.php?api=com.mongodb.async.SingleResultCallback

http://mongodb.github.io/mongo-java-driver/3.0/?_ga=1.13498046.849992754.1476359743

原子性

MongoDB中的所有写入操作都是单个文档级别的原子操作。

https://docs.mongodb.com/v3.2/tutorial/update-documents/ https://docs.mongodb.com/v3.2/core/write-operations-atomicity/