2017-08-14 85 views
1

我正在阅读来自Mongoose的特定模式的所有文档。现在在我的程序中,我正在对从Mongoose得到的结果进行一些修改。事情是这样的:如何保存/更新猫鼬中的多个文档

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

如何,我可以把所有的结果返回到数据库中保存的?目前我正在迭代文档并在每个文档上执行save()。我认为一定有更好的办法。但目前我只能找到有关在数据库中更新文档而不返回的信息。或者执行SAME更新到每个文档的批量更新。

回答

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" }); 
     } 
    }); 
+0

Thnaks但是这不是我我正在寻找,请仔细阅读这个问题。我有多个文件,我做了个别更改。 (即我正在改变每个文档的不同属性),我希望这些更改能够反映在数据库中。 – Chris

0

如果你正试图使在结果中的每个文件相同的变化,你可以做这样的事情:

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