我需要获取更新文档的_id
(Mongo ObjectID)。为此我想获得更新的文件。我怎么才能得到它?
我试过了:
...
collection.update(oldData, newData, function(err, doc) {
console.log(docs); // This prints "1" in console. So, it's not a document.
if (err) { return callback(err); }
callback(null, doc);
});
...
我可以在没有通过newData / oldData查找文档的情况下获取它吗?
答案 0 :(得分:8)
我认为您不想使用.update()
,而是使用.findAndModify()
。
更新可以更新多个文档,其回调的第二个参数是更新文档的数量(在您的情况下为1)。
使用findAndModify
,您可以准确更新一个文档(阅读文档与update
的确切区别),更新的文档将传递给回调函数。
答案 1 :(得分:0)
在nodejs API解决方案中,设置为:{returnOriginal:false}。
collection.findOneAndUpdate(
whereObj,
updateObj,
{returnOriginal: false});
根据文档: http://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#findOneAndUpdate