我想根据updateIds数组更新n个文档。我正在使用Mongoose Stream .on('data,function(){})。哪个是正确找到所有正确的文档。但现在我不确定如何更新每个文档。我可以在on。('data',function(doc){})中写一些类似doc.update({query},{key:value})的内容吗?
Wine.find({
'_id': { $in: updateIds}
}).stream()
.on('data', function(doc){
// how do I update a doc property here?
})
.on('error', function(error) {
throw error;
})
.on('end', function() {
// final callback
});
答案 0 :(得分:2)
你可以这样做。
Wine.find({
'_id': { $in: updateIds}
}).stream()
.on('data', function(doc){
doc.set('property_name', "value");
doc.save(function(err){
});
})
.on('error', function(error) {
throw error;
})
.on('end', function() {
// final callback
});
或者,如果您想使用相同的数据更新文档,则可以执行此操作,
Wine.update({ _id: { $in: updateIds} },
{ property: "value" },
{ multi : true},
function(err, count){
});