2016-10-11 83 views
1

我想基於updateIds數組更新n個文檔。我正在使用Mongoose Stream .on('data,function(){})。哪個正確找到所有正確的文檔。但現在我不確定如何更新每個文檔。我可以在on。('data',function(doc){})裏寫一些類似doc.update({query},{key:value})的東西嗎?Mongoose Stream,如何更新每個文檔?

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

回答

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

嗯,這是有道理的。謝謝! – tonejac

相關問題