So. Tengo un script muy básico, que se conecta a una base de datos y hace un find
en una colección que tiene una gran cantidad de documentos y lo limita a 3 elementos. Todo funciona sin problemas, excepto que al final de mis resultados, un null
y la secuencia de comandos no finaliza en lugar de cerrar la conexión silenciosamente después de haber tenido éxito.node-mongodb-native - cursor devuelve nulo como último valor durante cada llamada
Aquí declaro mis params y crear mi base de datos objeto:
var SERVER = 'localhost',
PORT = 27017,
DATABASE = 'test',
COLLECTION = 'coll',
mongo = require('mongodb'),
db = new mongo.Db(DATABASE,
new mongo.Server(SERVER, PORT, {auto_reconnect: true}),
{});
Y aquí me conecto a la base de datos y proceder a la consulta con un cursor find
y la función each
:
db.open(function(err, db) {
if(err) throw err;
var collection = new mongo.Collection(db, COLLECTION),
cursor = collection.find({}, {}).limit(3);
cursor.each(function(err, doc) {
if(err) throw err;
console.log(doc);
});
db.close();
});
Los resultados son agradables:
{ _id: '1',
a: 'first object' }
{ _id: '2',
a: 'second object' }
{ _id: '3',
a: 'third object' }
hasta el punto donde aparece un
null
.
Como se detalló anteriormente, la secuencia de comandos luego continúa para no terminar.
No entiendo por qué y agradecería consejos sobre cómo hacer que termine bien.
Esto debería ser la respuesta real. – Julian
Incluso, obtenía un valor nulo como último valor durante la llamada a cursor.each. versión de nodejs: 0.12.9, versión ddriver de mongodb:^2.2.33. Qué bueno que vi esta respuesta. –