2017-01-12 69 views
1

我成功運行在shell中查詢:爲什麼這個查詢在mongo shell中工作,而不是在mongo節點驅動程序中工作?

db.hourlydatas.find({'timeseries':ObjectId('1234')}) 

試圖將它轉換爲蒙戈司機:

MongoClient.connect(config.db, function(err, db) { 
// Use the admin database for the operation 

var collection = db.collection('hourlydatas'); 

collection.find({'timeseries':'1234'}).toArray(function(err, docs) { 
// assert.equal(err, null); 
console.log("Found the following records"); 
console.log(docs); 
// callback(docs); 
});  

}); 

這並不返回任何證件,我想是因爲我不是將字符串轉換爲對象ID。這在驅動程序中可能嗎?

回答

1

試試這個

var ObjectId = require('mongodb').ObjectID; 
var collection = db.collection('hourlydatas'); 
collection.find({'timeseries':ObjectId('1234')}).toArray(function(err,docs) {...} 
+0

它實際上並不是一個整數,它的對象ID字符串。實際目標是像5019ijasWQa231這樣的長字符串,但爲簡單起見,我對其進行了更改 – apdm

+0

好吧,不要忘記:p – meda

+0

@apdm請參閱我的更新 – meda

0

它應該工作,你確定你要連接到同一個數據庫?檢查兩個連接是否要測試或生產...我曾經浪費了很多時間,最後發現我的mongo-shell在連接到測試節點時連接到了prod。

相關問題