如何在mongoose中保存/更新多个文档

时间:2017-08-14 09:58:54

标签: mongodb mongoose

我正在阅读Mongoose的特定架构的所有文档。现在在我的程序中,我正在对Mongoose随着时间推移得到的结果做一些修改。像这样:

var model = mongoose.model("Doc", docSchema);
model.find(function(err, result){
     // for each result do some modifications
});

如何将所有结果发送回数据库进行保存?目前我正在迭代文档并对每个文档执行save()。我认为必须有更好的方法。但目前我只找到有关更新数据库中的文档而不返回它们的信息。或批量更新,其中SAME将更新到每个文档。

2 个答案:

答案 0 :(得分:0)

您可以将更新查询与multi:true一起使用,以更新数据库中的所有文档。 请查看以下参考代码,

 model.update({ "_id": id }, { $set: { "Key": "Value" } }, { multi: true }, function (err, records) {
      if (err || !records) {
        return res.json({ status: 500, message: "Unable to update documents." });
      } else {
        return res.json({ status: 200, message: "success" });
      }
    });

答案 1 :(得分:0)

如果您尝试对结果中的每个文档进行相同的更改,您可以执行以下操作:

model.update({ _id: { $in: results.map(doc=>doc._id) }}, { yourField: 'new value' }, { multi: true })