获取MongoDB中的更新文档

时间:2013-05-02 08:18:13

标签: javascript node.js mongodb

我需要获取更新文档的_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查找文档的情况下获取它吗?

2 个答案:

答案 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