Save Or Update Mongoose (保存或更新Mongoose)
Save Or Update Mongoose (保存或更新Mongoose)
有没有一个好的方式可以在Mongoose中保存或更新文档?类似于下面我所需要的:
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() { ... }
谢谢大家的帮助
admin 更改状态以发布 2023年5月21日
您可以使用MongoDB的findAndModify函数。在Mongoose中,可以通过调用findOneAndUpdate()来本地支持此功能。这是它的文档。http://mongoosejs.com/docs/api.html#query_Query-findOneAndUpdate
请注意,在第三个参数中,它等待传递一个带有选项的对象。您想在其中使用{ upsert:true }
,以在不存在文档时创建一个新文档。
我认为你要找的是'upsert'。
您可以使用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的文档用法可以查看此处文档。