Това е правилният синтаксис за обратно извикване, но какво find
предоставя на обратното извикване е Cursor
, а не масив от документи. Така че, ако искате вашето обратно извикване да предоставя резултати като масив от документи, извикайте toArray
върху курсора, за да ги върнете:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
Имайте предвид, че обратното извикване на вашата функция все още трябва да предостави err
параметър, така че обаждащият се да знае дали заявката е работила или не.
2.x актуализация на драйвер
find
сега връща курсора, вместо да го предоставя чрез обратно извикване, така че типичната употреба може да бъде опростена до:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
Или в този случай, когато се очаква един документ, е по-лесно да използвате findOne
:
collection.findOne({'_id': o_id}, function(err, result) {...});