To poprawna składnia wywołania zwrotnego, ale co find
? zapewnia do wywołania zwrotnego Cursor
, a nie szereg dokumentów. Więc jeśli chcesz, aby wywołanie zwrotne dostarczało wyniki w postaci tablicy dokumentów, wywołaj toArray
na kursorze, aby je zwrócić:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
Zwróć uwagę, że wywołanie zwrotne funkcji nadal musi zawierać err
parametr, aby osoba wywołująca wiedziała, czy zapytanie zadziałało, czy nie.
Aktualizacja sterownika 2.x
find
teraz zwraca kursor zamiast dostarczać go przez wywołanie zwrotne, więc typowe użycie można uprościć do:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
Lub w tym przypadku, gdy oczekiwany jest pojedynczy dokument, łatwiej jest użyć findOne
:
collection.findOne({'_id': o_id}, function(err, result) {...});