MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So erhalten Sie einen Callback für MongoDB collection.find()

Das ist die korrekte Callback-Syntax, aber was find stellt für den Callback einen Cursor bereit , nicht eine Reihe von Dokumenten. Wenn Sie also möchten, dass Ihr Rückruf Ergebnisse als Array von Dokumenten liefert, rufen Sie toArray auf auf dem Cursor, um sie zurückzugeben:

collection.find({'_id':o_id}, function(err, cursor){
    cursor.toArray(callback);
    db.close();
});

Beachten Sie, dass der Callback Ihrer Funktion immer noch einen err liefern muss Parameter, damit der Aufrufer weiß, ob die Abfrage funktioniert hat oder nicht.

2.x-Treiberaktualisierung

find gibt jetzt den Cursor zurück, anstatt ihn über einen Rückruf bereitzustellen, sodass die typische Verwendung vereinfacht werden kann zu:

collection.find({'_id': o_id}).toArray(function(err, results) {...});

Oder in diesem Fall, wo ein einzelnes Dokument erwartet wird, ist es einfacher, findOne zu verwenden :

collection.findOne({'_id': o_id}, function(err, result) {...});