So. I have a very basic script, that connects to a database and does a find
on a collection that has a lot of documents and limit it to 3 items. Everything runs smoothly except that at the end of my results, a null
and the script doesn't terminate instead of closing the connection quietly after having succeedeed.
Here I declare my params and create my database object:
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}),
{});
And here I connect to the database and proceed to query it with a find
cursor and the each
function:
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();
});
Results are nice:
{ _id: '1',
a: 'first object' }
{ _id: '2',
a: 'second object' }
{ _id: '3',
a: 'third object' }
up until the point where a
null
appears.
As described above, the script then proceeds not to terminate.
I don't get why and would appreciate pointers on how to make it terminate nicely.