MongoDB(Node)findOne函数在按IDsearch时不返回结果

他们,我真的不明白我做错了什么。 尝试了所有我可以find的interwebs,但我不能通过我的Node应用程序中的ID获取文档。 所以情况如下:

如果我在terminal中使用MongoDB shell,会生成:

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" : [ ] } 

到目前为止这么好吗?

在我的Node应用程序中

 //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(); }); 

产生null。 我真的在这一个上打破了我的头。 有人能告诉我我做错了什么吗?

结果到达之前,您正在closures数据库:

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

一旦结果到达,请closures数据库:

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