Ich bin völlig neu in mongoDB und habe keine Erfahrung mit Node.js, also bitte entschuldigen Sie, wenn der folgende Code nicht perfekt ist.Entfernen von Dokumenten aus einer Mongodb-Sammlung von node.js
Das Ziel besteht darin, ein Dokument aus einer Sammlung zu entfernen, die von seiner _id
referenziert wird. Das Entfernen ist abgeschlossen (checked in mongo shell), aber der Code endet nicht (node myscript.js
läuft nicht meine Shell zurück). Wenn ich eine db.close()
hinzufüge, bekomme ich { [MongoError: Connection Closed By Application] name: 'MongoError' }
.
var MongoClient = require("mongodb").MongoClient;
var ObjectID = require("mongodb").ObjectID;
MongoClient.connect('mongodb://localhost/mochatests', function(err, db) {
if (err) {
console.log("error connecting");
throw err;
}
db.collection('contacts', {}, function(err, contacts) {
if (err) {
console.log("error getting collection");
throw err;
}
contacts.remove({_id: ObjectID("52b2f757b8116e1df2eb46ac")}, {safe: true}, function(err, result) {
if (err) {
console.log(err);
throw err;
}
console.log(result);
});
});
db.close();
});
Muss ich die Verbindung nicht schließen? Was passiert, wenn ich es nicht schließe und das Programm nicht endet?
Danke!
Nichts geschieht, wird Ihr Programm wartet nur für einige I/O von Mongo-Treiber. Natürlich wissen Sie, dass nichts ankommen wird und Sie nichts senden werden, aber Node weiß das nicht und kann es nicht beenden. – kamituel