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