我正在尝试让Mongo数据库返回过去一周内创建的所有记录。
每条记录都有一个'created at'
字段,类似于'6/22/17 09:14'
。如何检查此日期是否发生在过去一周?
我有一些看起来像这样的代码:
the_collection.find({ALERT_CREATED : {> : new Date() - ONE_WEEK}}).toArray(function(error, results) {
if (error) {
callback(error);
} else {
callback(null, results);
}
});
使用不同的日期格式,无法比较两个日期。
更新
为了澄清该问题,数据库中的日期具有6/22/17 09:14
形式,因此无法与Date()对象进行正确比较。有没有办法正确比较它们?
答案 0 :(得分:0)
您可能需要在MongoDB查询中减去天数。请尝试以下代码:
the_collection.find(
{
"ALERT_CREATED":
{
$gte: (new Date((new Date()).getTime() - (7 * 24 * 60 * 60 * 1000)))
}
})
1 day = 1*24*60*60000 = 1 x 24 hours x 60 minutes x 60 seconds x 1000 milliseconds
答案 1 :(得分:0)
首先,您需要使用MongoDB的日期格式将created_at
字段与(今天 - 7)进行比较的日期。然后只获得之后的日期。
var lastWeek = new Date();
lastWeek.setDate(lastWeek.getDate() -7);
db.the_collection.find({'created_at': {'$gte': lastWeek}});
答案 2 :(得分:0)
日期似乎不是标准格式。您将必须手动将给定的字符串转换为有效的日期字符串。
一种方法是分割字符串,并使用here中记载的wrapper.find('Snackbar').prop('action')[0].prop('onClick')();
来构造日期。
dateFormParts