我无法按日期查询集合过滤
以下代码是我到目前为止的
//The following code shows how my schema is:
date: {type: Date, required: true}
//This is a date from a collection in MongoDB:
date: 2019-09-06T16:48:14.000+00:00
//This is how I saved the date in the MongoDB:
"2019/09/09 08:55:15"
//And this is how I perform the query in NodeJS:
let year = req.query.year;
let month = req.query.month;
let day = req.query.day;
let startDate = new Date(year, month, day);
let endDate = new Date(year, month, day);
// find documents in MongoDB
let query = SALES.find({ date: { $gte: startDate, $lte: endDate }});
// execute the query at a later time
query.exec(function (err, item) { // item is a dictionary
if (err) return handleError(err); // throws an error if any
if (item === null || item.length === 0) {
res.json({
status: 'empty',
});
}
else {
res.json({
salesRecord: item
});
}
});
我读到它很容易获得,但是我做不到。欢迎任何帮助?
我没有查询错误,只是我得到的响应为空。 预期结果是从指定日期获取日期
答案 0 :(得分:0)
简短答案
您保存的日期(“ 2019/09/09 08:55:15”)被视为字符串。
尝试一下:
db.mycollection.find({
"date" : {"$gte": new Date()}
})
或
db.mycollection.find({
"date" : {"$gte": ISODate(new Date())} // current date
});
说明
Mongodb shell提供了多种返回日期的方法,它可以是字符串或作为Date对象: