我想获取更新的文档。这是我的原始代码,它成功更新但没有返回文档。
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插入一个文档并返回新插入的文档。我用了db。集合(“集合名称”)。insertOne(“要插入的数据”)。然后((res)= 错误:未定义ops。 insertOne只返回插入文档的_id,而不是整个文档☹ 但早些时候,它通常返回整个文档。我使用了mongoclient而不是mongoose,在mongoose中它返回整个文档,但我不喜欢使用mongoose。
主要内容:update() 方法,save() 方法在 MongoDB 中,可以使用 update() 和 save() 方法来更新集合中的文档。其中 update() 方法可以更新现有文档中的值,而 save() 方法则可以使用传入文档来替换已有文档。 update() 方法 update() 方法用于更新现有文档中的值,其语法格式如下: db.collection_name.update( <query>, <update>,
问题内容: 下面是我的代码 我的mongo数据库中已经有一些记录,我想运行此代码来更新年龄为17岁的姓名,然后在代码末尾打印结果。 但是,为什么我仍然从控制台获得相同的结果(而不是修改后的名称),但是当我转到mongo db命令行并键入“ ”时。结果带有修改后的名称。 然后,我再次运行该代码,并修改了结果。 我的问题是:如果修改了数据,那么为什么在console.log时还是第一次获得原始数据。
问题内容: 我有这些猫鼬模式: 如何返回所有带有最新消息子文档(限制1)的线程? 目前,我正在服务器端过滤结果,但出于性能考虑,我想在MongoDb中移动此操作。 问题答案: 您可以使用,,并使用类似以下方式进行操作:
问题内容: 我正在尝试使用MongoDB的Java驱动程序在同一操作中对记录进行两次更新($ set和$ push)。我正在使用类似于以下代码: 当我通过BasicDBList将$ set和$ push合并到同一更新中时,我得到一个IllegalArgumentException:“存储在db中的字段不能以’$’开头(错误键:’$ push’)”。 如果我进行两个单独的更新,则pushUpdate
我想在具有指定 URL 的相应文档中将嵌套的“已爬行”更新为 True。 我对mongodb相当陌生,我似乎无法弄清楚这一点,非常感谢任何帮助。