MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment obtenir un rappel sur MongoDB collection.find()

C'est la bonne syntaxe de rappel, mais qu'est-ce que find fournit au rappel est un Cursor , pas un tableau de documents. Donc, si vous voulez que votre rappel fournisse des résultats sous forme de tableau de documents, appelez toArray sur le curseur pour les renvoyer :

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

Notez que le rappel de votre fonction doit toujours fournir un err afin que l'appelant sache si la requête a fonctionné ou non.

Mise à jour du pilote 2.x

find renvoie désormais le curseur plutôt que de le fournir via un rappel, de sorte que l'utilisation typique peut être simplifiée :

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

Ou dans ce cas où un seul document est attendu, il est plus simple d'utiliser findOne :

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