是否可以在调用updateOne()之后获取所有更新的值/值
_.each(gameResult, function(gameResult){
bulk.find({"user" : gameResult.user, "section" : gameResult.section , "code" : gameResult.code}).upsert().updateOne(gameResult);
})
想象一下在更新之前我在db中的值是:
1, 1, 1, 1
gameResult是:
1, 2, 1 , 3
所以我的数据库更新了:1,2,1,3
是否有可能获得更改的所有值,所以在这里我如何得到我的两个对象2和3因为我需要它在代码中。
答案 0 :(得分:3)
您正在寻找findAndModify
。
执行更新,同时从数据库返回现有文档。默认情况下,此方法在应用更改之前返回文档(可以使用new:true
选项更改此行为)。因此,您可以轻松地将返回的文档与本地文档进行比较,以找出差异。
不幸的是,批量操作不支持findAndModify,因此您需要逐个文档地执行此操作。