So. Ich habe ein sehr einfaches Skript, das eine Verbindung zu einer Datenbank herstellt und eine find
auf einer Sammlung, die viele Dokumente enthält, auf 3 Elemente beschränkt. Alles läuft reibungslos, nur dass am Ende meiner Ergebnisse, ein null
und das Skript nicht beendet, anstatt die Verbindung ruhig nach dem Erfolg zu schließen.node-mongodb-native - Der Cursor gibt als letzten Wert während eines jeden Aufrufs null zurück
Hier erkläre ich meine params und eröffne mein Datenbankobjekt:
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}),
{});
Und hier habe ich mit der Datenbank verbinden und gehen sie mit einem find
Cursor abzufragen und die each
Funktion:
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();
});
Ergebnisse sind nett:
{ _id: '1',
a: 'first object' }
{ _id: '2',
a: 'second object' }
{ _id: '3',
a: 'third object' }
bis zu dem Punkt, an dem ein
null
erscheint.
Wie oben erwähnt, wird das Skript dann nicht beendet.
Ich verstehe nicht warum und würde gerne wissen, wie man es schön beenden kann.
Dies sollte die tatsächliche Antwort sein. – Julian
Sogar, ich bekam einen NULL als letzten Wert während des Aufrufs von cursor.each. nodejs Version: 0.12.9, mongodb ddriver Version:^2.2.33. Gut, dass ich diese Antwort gesehen habe. –