Save Or Update Mongoose (保存或更新Mongoose)

12 浏览
0 Comments

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日
0
0 Comments

您可以使用MongoDB的findAndModify函数。在Mongoose中,可以通过调用findOneAndUpdate()来本地支持此功能。这是它的文档。http://mongoosejs.com/docs/api.html#query_Query-findOneAndUpdate
请注意,在第三个参数中,它等待传递一个带有选项的对象。您想在其中使用{ upsert:true },以在不存在文档时创建一个新文档。

0
0 Comments

我认为你要找的是'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的文档用法可以查看此处文档

0