2017-01-12 45 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。

相关问题