我在shell中成功运行了这个查询:
db.hourlydatas.find({'timeseries':ObjectId('1234')})
尝试将其转换为mongo驱动程序:
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);
});
});
这不返回任何文档,我假设因为我没有将字符串转换为objectID。这可能在驱动程序中吗?
答案 0 :(得分:1)
试试这个
var ObjectId = require('mongodb').ObjectID;
var collection = db.collection('hourlydatas');
collection.find({'timeseries':ObjectId('1234')}).toArray(function(err,docs) {...}
答案 1 :(得分:0)
它应该可以工作,你确定你连接到同一个数据库吗?检查两个连接是否要测试或刺激...我曾经浪费了很多时间,最后发现我的mongo-shell连接到prod,而节点连接到测试。