7

我需要获取_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 文档的情况下得到它吗?

4

2 回答 2

9

而不是使用.update(),我想你想使用.findAndModify()

更新可以更新多个文档,其回调的第二个参数是更新文档的数量(在您的情况下为 1)。

使用findAndModify,您可以只更新一个文档(阅读文档以了解它与 的不同之处update),并且更新的文档将被传递给回调函数。

于 2013-05-02T08:29:05.217 回答
2

在 nodejs API 解决方案是设置:{returnOriginal: false}。

collection.findOneAndUpdate(
        whereObj,
        updateObj,
        {returnOriginal: false});

根据文档: http: //mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#findOneAndUpdate

于 2018-10-16T17:56:34.120 回答