2016-10-11 2 views
1

Ich möchte n Anzahl der Dokumente aktualisieren, basierend auf einem Array von updateIds. Ich verwende Mongoose Stream .on ('data, function() {}). Welches die richtigen Dokumente richtig findet. Aber jetzt bin ich mir nicht sicher, wie ich jedes Dokument aktualisieren soll. Kann ich einfach etwas wie doc.update ({query}, {key: value}) in das on schreiben ('data', function (doc) {})?Mongoose Stream, wie aktualisiert man jedes doc?

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

Antwort

2

Sie können es auf diese Weise tun.

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

Oder wenn Sie die Dokumentation mit gleichen Daten aktualisieren möchten, können Sie dies tun,

Wine.update({ _id: { $in: updateIds} }, 
    { property: "value" }, 
    { multi : true}, 
    function(err, count){ 
    }); 
+0

Nun, das macht Sinn. Danke! – tonejac

Verwandte Themen