我有一个名为 created 的DateTime字段的集合。 ¿有没有办法查询在任何日期但在特定时间间隔内创建的元素,如标题所示,使用 find 或其他方法?
答案 0 :(得分:0)
在mysql中我创建了一个datetime字段,即yearmonthdayhrminsec .. 20150313132300这样它的完全数字并且不依赖于不同数据库处理日期和时间的方式。通过这种方式,我可以在数字范围内查询.....无论如何,对我来说更容易。
答案 1 :(得分:0)
我在这里提供一些代码。请根据您的要求修改以下代码。
以下函数frame_date()将根据小时,分钟,秒和毫秒获得时间。
function frame_date(gethours, getMins, getSecs, getMiliSecs) {
var timestamp = new Date();
var getYear = timestamp.getFullYear();
var getMnth = timestamp.getMonth();
var getDate = timestamp.getDate();
if (getDate < 10) {
getDate = "0" + getDate;
}
if (getMnth < 9) {
getMnth = parseInt(getMnth) + 1
getMnth = "0" + getMnth;
} else {
getMnth = getMnth + 1;
}
var final_framed_date = getYear + "-" + getMnth + "-" + getDate + " " + gethours + ":" + getMins + ":" + getSecs + "." + getMiliSecs;
return final_framed_date;
}
现在我们将在新的Date()中调用frame_date()函数来获取日期。
var nine_am_date = new Date(frame_date(09, 00, 00, 000));// get time of 9 a.m.
var seven_pm_date = new Date(frame_date(19, 00, 00, 000));// get time of 7 p.m.
现在我们将使用大于或小于创建的字段。它只会在上午9点之间取货。和晚上7点
db.collection('users').find({created: {$gte: nine_am_date, $lte: seven_pm_date}}).sort({created: -1}).toArray(function(err, users) {
if (err) {
//handle error here
} else {
//do stuff here
}
});
由于