Det är rätt syntax för återuppringning, men vad find ger till återuppringningen är en Cursor , inte en mängd dokument. Så om du vill att din återuppringning ska ge resultat som en mängd dokument, ring toArray på markören för att returnera dem:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
Observera att din funktions återuppringning fortfarande måste ge ett err parameter så att den som ringer vet om frågan fungerade eller inte.
2.x-drivrutinsuppdatering
find returnerar nu markören istället för att tillhandahålla den via en återuppringning, så den typiska användningen kan förenklas till:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
Eller i det här fallet där ett enstaka dokument förväntas, är det enklare att använda findOne :
collection.findOne({'_id': o_id}, function(err, result) {...});