我是Java,Node.ja和MongoDB的新手,在指定查询参数时无法将结果返回到Node.js服务器中(可以很好地返回所有记录而无需查询)。
我的收藏集的时间戳字段的格式为“ yyyy-mm-dd hh:mm:ss”,我想返回小时为“ 00”,“ 06”,“ 12”或“ 18”的所有结果'驱动图表(使用chart.js)
在mongo cmdline上,我可以执行以下操作:
db.MyCollection.find({$ or:[{“ timestamp”:/.* 06:。 /},{“ timestamp”:/. 12:。 /} ,{“ timestamp”:/. 18:。 /},{“ timestamp”:/. 00:。* /}]})
这返回了我的期望。但是,我无法在Node.js服务器中使用它。
function getChartData_7d(callback) {
MongoClient.connect(mongoURL, function(error, client) {
if (error) {
throw err;
}
var db = client.db('WeatherDB');
var collection = db.collection('AverageTPH');
var query = {
$or:[
{timestamp: /.* 06:.*/},
{timestamp: /.* 12:.*/},
{timestamp: /.* 18:.*/},
{timestamp: /.* 00:.*/}
]
};
/*
** Even this query doesn't return anything
*/
var query = {
timestamp: /.* 06:.*/
};
/*
** But this does...
*/
var query = {};
var options = {
"limit": 7
};
/*
** Get a reading 4 times a day at 06:xx, 12:xx, 18:xx, 00:xx for 7 days...
*/
collection.find(query, options).sort({timestamp: -1}).toArray((error, items) => {
if (error) {
throw error;
}
return callback(items);
});
client.close();
});
}
我已经看过示例并阅读了MongoDB手册,但我正在挠头试图使它起作用。任何帮助将不胜感激。
答案 0 :(得分:0)
好的,我找到了解决方案。由于我几乎找不到有用的文档和示例,因此我转储了MongoDB并安装了Postgres,它的工作原理就像一个吊饰!