Esa es la sintaxis de devolución de llamada correcta, pero ¿qué find
proporciona a la devolución de llamada un Cursor
, no una matriz de documentos. Entonces, si desea que su devolución de llamada proporcione resultados como una matriz de documentos, llame a toArray
en el cursor para devolverlos:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
Tenga en cuenta que la devolución de llamada de su función aún debe proporcionar un err
parámetro para que la persona que llama sepa si la consulta funcionó o no.
Actualización del controlador 2.x
find
ahora devuelve el cursor en lugar de proporcionarlo a través de una devolución de llamada, por lo que el uso típico se puede simplificar a:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
O en este caso, donde se espera un solo documento, es más sencillo usar findOne
:
collection.findOne({'_id': o_id}, function(err, result) {...});