在Mongodb中更新和返回文档

我想获取更新的文档。这是我的原始代码,它成功更新但没有返回文档。

collection.update({ "code": req.body.code },{$set:  req.body.updatedFields}, function(err, results) {

res.send({error: err, affected: results});

db.close();

});

我使用了toArray函数,但是这给出了错误“没有提供的回调就不能使用writeConcern”:

collection.update({ "code": req.body.code },{$set:  req.body.updatedFields}).toArray( function(err, results) {

res.send({error: err, affected: results});

db.close();

});

有任何想法吗?

回答:

collection.update() 只会向自己的回调报告受影响的文档数。

要在修改时检索文档,可以collection.findOneAndUpdate()改用(以前称为.findAndModify())。

collection.findOneAndUpdate(

{ "code": req.body.code },

{ $set: req.body.updatedFields },

{ returnOriginal: false },

function (err, documents) {

res.send({ error: err, affected: documents });

db.close();

}

);

.findOneAndUpdate在mongoDB中执行时,请使用;{returnNewDocument:

true}如果使用mongoose,则可以使用{new : true}。以上是Node.js驱动程序。

注意:当前指的是2.2版以上的Node.js驱动程序。对于将来的版本,请检查文档中是否有弃用警告,并改用建议的替代方法。

以上是 在Mongodb中更新和返回文档 的全部内容, 来源链接: utcz.com/qa/408232.html

回到顶部