他们,我真的不明白我做错了什么。尝试了我可以在互联网上找到的所有内容,但我无法通过我的Node应用程序中的ID获取文档。情况就是这样:
如果我在终端中使用MongoDB shell,则会生成:
//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();
});
到目前为止还不错?
在我的节点应用中
QUERY
生成null。我真的打破了这个问题。有人能告诉我我做错了吗?
答案 0 :(得分:2)
您在结果到达之前关闭了数据库:
col.findOne({_id:o_id},function(err, docs) {
console.log("Printing docs from Array. count " + JSON.stringify(docs));
});
db.close(); // <-- here!
相反,关闭数据库一旦结果已到达:
col.findOne({_id:o_id},function(err, docs) {
console.log("Printing docs from Array. count " + JSON.stringify(docs));
db.close();
});