Javascript 保存或更新Mongoose
在mongoose中是否有保存或更新文档的好方法?就像我下面要找的一样Javascript 保存或更新Mongoose,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,在mongoose中是否有保存或更新文档的好方法?就像我下面要找的一样 let campaign = new Campaign({ title: req.body.title, market: req.body.market, logo: req.body.logo, additional_question_information: question, status: status }); campai
let campaign = new Campaign({
title: req.body.title,
market: req.body.market,
logo: req.body.logo,
additional_question_information: question,
status: status
});
campaign.saveOrUpdate().then(function() { ... }
谢谢大家的帮助我想你要找的是所谓的“升级” 您可以通过使用findOneAndUpdate并传递{upsert:true}选项来实现这一点,如以下示例所示:
let campaign = new Campaign({
title: req.body.title,
market: req.body.market,
logo: req.body.logo,
additional_question_information: question,
status: status
});
Campaign.findOneAndUpdate({
_id: mongoose.Types.ObjectId('CAMPAIGN ID TO SEARCH FOR')
}, campaign, { upsert: true }, function(err, res) {
// Deal with the response data/error
});
findOneAndUpdate的第一个参数是用于查看是保存新文档还是更新现有文档的查询。如果要在响应数据中返回修改过的文档,还可以添加{new:true}
选项
此处的findOneAndUpdate文档:您可以使用MongoDB的findAndModify函数。在mongoose中,通过调用findOneAndUpdate()本机支持这一点。这是它的文档。
请注意,在第三个参数中,它等待通过选项传递对象。如果不存在新文档,您希望在其中使用
{upsert:true}
来创建新文档。您的问题是什么?你所做的是正确的。对不起,我一点也不清楚。我想保存一个不存在的文档,或者用新数据更新一个先前存在的文档。有没有一种方法可以在猫鼬身上做到这一点?看起来可能是See的副本。可能是See的副本。我认为.findOneAndUpdate调用中活动对象周围的大括号{}实际上不应该在那里。很好!编辑了答案。仅供参考,执行findOneAndUpdate
不会引发任何围绕save
的中间程序。参考: