2014-04-19 14 views
6

Das scheint wirklich schlecht dokumentiert .. Das documentation Beispiel hat gerade callback zur Aktualisierung übergeben. Es gibt einen Link, der zu Model.updatehere umleitet und das Beispiel zeigt, dass die Parameter des Rückrufs (err, numberAffected, raw) sind.Was sind alle möglichen Rückrufparameter für Mungo Dokument # Update?

Erreicht der Callback für die Aktualisierung von Dokument # die gleichen Parameter? Ich hatte gehofft, das aktualisierte Dokument zurück zu bekommen. Meine ursprüngliche Suche basierte auf how to update a document in mongo db, aber selbst die Antwort dort erklärt nicht oder listet sogar die Parameter des Rückrufs auf.

Antwort

9

Schlechte Dokumentation von Rückrufparametern ist etwas, das aus irgendeinem Grund viele node.js Bibliotheken plagt. Der Befehl update von MongoDB (unabhängig vom Treiber) bietet jedoch keinen Zugriff auf das aktualisierte Dokument, sodass Sie sicher sein können, dass es nicht für den Rückruf bereitgestellt wird.

Wenn Sie das aktualisierte Dokument möchten, dann können Sie eine der findAndModify Methoden wie findOneAndUpdate:

MyModel.findOneAndUpdate({_id: 1}, {$inc: {count: 1}}, {new: true}, function (err, doc) { 
    // doc contains the modified document 
}); 

Beginnend mit Mongoose 4.0 Sie die {new: true} Option in dem Aufruf zur Verfügung stellen müssen das aktualisierte Dokument zu erhalten, Als Standard ist jetzt false, die das Original zurückgibt.

0

num-affected ist eigentlich roher mongoDB-Ausgang und ein Objekt. Es sieht so aus:

{ok: 1, nModified: 0, n: 1} 

leider habe ich keine Ahnung was nModified property bedeutet. 'n' ist die alte (vor 4.0) Anzahl betroffener Zeilen

Verwandte Themen