Questa è la sintassi di callback corretta, ma cosa find
fornisce alla richiamata un Cursor
, non un array di documenti. Quindi, se vuoi che la tua richiamata fornisca risultati come un array di documenti, chiama toArray
sul cursore per restituirli:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
Nota che la richiamata della tua funzione deve ancora fornire un err
parametro in modo che il chiamante sappia se la query ha funzionato o meno.
Aggiornamento driver 2.x
find
ora restituisce il cursore anziché fornirlo tramite una richiamata, quindi l'utilizzo tipico può essere semplificato in:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
Oppure, in questo caso in cui è previsto un unico documento, è più semplice utilizzare findOne
:
collection.findOne({'_id': o_id}, function(err, result) {...});