2016-07-04 5 views
1

Er Jungs, ich verstehe wirklich nicht, was ich falsch mache. Habe alles versucht, was ich auf den Interwebs finden konnte, aber ich kann keine Dokumente per ID in meiner Node-Anwendung bekommen. Also hier ist die Situation:MongoDB (Node) findOne Funktion liefert keine Ergebnisse bei der Suche nach ID

Wenn ich die MongoDB Shell im Terminal verwenden, um dies erzeugt:

db.tochten.find({"_id" : ObjectId("577a6640c27dc10de81b265d")}) 

{ "_id" : ObjectId("577a6640c27dc10de81b265d"), "datum" : "2016-07-07", "weergavedatum" : "donderdag 7 juli", "begintijd" : "20:00", "eindtijd" : "21:00", "schip" : "Ouwe Dirk", "tocht" : "Rondvaart", "maxaantal" : "40", "opemerkingen" : "", "reserveringen" : [ ] } 

So weit so gut wahr?

In meinem Knoten App

//open db connection 
MongoClient.connect(url, function(err, db) { 
assert.equal(null, err); 

// Set our collection 
var col = db.collection('tochten'); 

//objectid stuff 
var ObjectId = require('mongodb').ObjectID; 

var o_id = new ObjectId("577a6640c27dc10de81b265d"); 

col.findOne({_id:o_id},function(err, docs) { 
     console.log("Printing docs from Array. count " +  JSON.stringify(docs)); 
    }); 

db.close(); 

}); 

Produziert null. Ich habe mir dabei wirklich den Kopf gebrochen. Kann mir jemand sagen, was ich falsch mache?

+0

Sie erhalten 'err' oder' docs = null? –

+0

Dokumente Der Fehler wird nicht gedruckt. Ich werde das versuchen. edit: kein Fehler – Dirk

+0

Bitte versuchen Sie es mit Anführungszeichen um _id 'col.findOne ({" _ id ": o_id}'; –

Antwort

2

Sie die Datenbank sind zu schließen, bevor das Ergebnis gekommen ist:

col.findOne({_id:o_id},function(err, docs) { 
    console.log("Printing docs from Array. count " + JSON.stringify(docs)); 
}); 

db.close(); // <-- here! 

Stattdessen schließen Sie die Datenbank einmal das Ergebnis gekommen ist:

col.findOne({_id:o_id},function(err, docs) { 
    console.log("Printing docs from Array. count " + JSON.stringify(docs)); 
    db.close(); 
}); 
+0

Danke. Werde diesen dummen Fehler nicht noch einmal machen. : D – Dirk

Verwandte Themen