获取/返回MongoDb中新插入或新修改的文档(使用java驱动程序)
我在MongoDb中插入/更新的文档具有自动更新的currentDate,例如:
> db.TEMP.update({"event" : "sold my iPhone"}, { $currentDate: {lastModified: true}} , {upsert: true} )
WriteResult({
"nMatched" : 0,
"nUpserted" : 1,
"nModified" : 0,
"_id" : ObjectId("5a6b3799a187fac295097a64")})
对我来说,在编写对象时就知道“lastModified”的值是至关重要的。由于WriteResult返回新插入的对象id,因此我只能获取该对象:
> db.TEMP.findOne({"_id" : ObjectId("5a6b3799a187fac295097a64")})
{
"_id" : ObjectId("5a6b3799a187fac295097a64"),
"event" : "sold my iPhone",
"lastModified" : ISODate("2018-01-26T14:13:45.031Z")
}
但这意味着每一个都要进行2 DB的操作(写入和读取)。有没有办法让“WriteResult”包含lastModified对象,或者只返回新插入/更新的对象(甚至光标)
哦,我使用的是java驱动程序,所以我需要用java,而不是命令行
# 1 楼答案
将其更改为
findOneAndUpdate
而不是updateOne
,这样也会返回更新的文档或者
范例
日志