così. Ho uno script molto semplice, che si collega a un database e fa un find
su una raccolta che ha molti documenti e la limita a 3 elementi. Tutto funziona senza intoppi, tranne che alla fine dei miei risultati, uno null
e lo script non termina invece di chiudere la connessione in silenzio dopo aver avuto successo.node-mongodb-native - il cursore restituisce null come ultimo valore durante ogni chiamata
Qui dichiaro la mia params e creare il mio oggetto di database:
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}),
{});
E qui mi collego al database e procedere ad interrogare con un find
cursore e la funzione 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();
});
I risultati sono piacevoli:
{ _id: '1',
a: 'first object' }
{ _id: '2',
a: 'second object' }
{ _id: '3',
a: 'third object' }
fino al punto in cui appare
null
.
Come sopra indicato, lo script procede quindi non per terminare.
Non capisco perché e vorrei apprezzare i suggerimenti su come farlo terminare bene.
Questa dovrebbe essere la risposta reale. – Julian
Anche, stavo ottenendo un null come ultimo valore durante la chiamata a cursor.each. versione nodejs: 0.12.9, versione di mongodb ddriver:^2.2.33. Bene, ho visto questa risposta. –