2016-07-04 93 views
1

他們,我真的不明白我做錯了什麼。嘗試了所有可以在interwebs上找到的東西,但無法通過我的Node應用程序中的ID獲取文檔。因此,這裏的情況:MongoDB(Node)findOne函數在按ID搜索時不返回結果

如果我在終端使用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" : [ ] } 

到目前爲止好權?

在我的節點應用

//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。我真的在這一個上打破了我的頭。有人能告訴我我做錯了什麼嗎?

+0

你得到'err'或'文檔= null'? –

+0

Docs。不打印錯誤。我會嘗試。編輯:沒有錯誤。 – Dirk

+0

請使用_id'col.findOne({「_ id」:o_id}'; –

回答

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

謝謝。不會再犯這個愚蠢的錯誤。 :d – Dirk