猫鼬流,如何更新每个文档?

Mongoose Stream, how to update each doc?

我想根据 updateId 数组更新 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
    });

你可以这样做。

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