Mongoose Stream,如何更新每个文档?

时间:2016-10-11 07:09:50

标签: node.js mongodb mongoose mean-stack mean.io

我想根据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
    });

1 个答案:

答案 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){
    });