我的Meteor应用程序中有一个日期选择器。当我将日期插入或更新到我的集合中时,在从datepicker的值创建变量后,我这样做:
due: moment(new Date(due)).toDate()
将日期插入mongo,如下所示:
Tue Jun 21 2016 00:00:00 GMT-0400 (EDT)
我想要做的是过滤掉到期的作业"今天"而且我没有在我的模板中获得任何数据。如果我做一个没有过滤的find(),我会收回所有任务。所以模板渲染只是我无法正确过滤。
这就是我现在的代码。
today: function(){
var today = moment().startOf(Date());
var tomorrow = moment(today).add(1, Date());
return Items.find({
due:{
$gt: today.toDate(),
$lt: tomorrow.toDate()
}
});
},
我也尝试过这样做:
var today = new Date();
Items.find({
due:{$eq:{today}
});
我做错了什么。由于datepicker的时间是00:00,这可能会影响查询吗?
任何帮助将不胜感激。谢谢。
答案 0 :(得分:2)
要获得今天到期的作业,您需要使用$gte
:
due:{
$gte: today.toDate(),
$lt: tomorrow.toDate()
}
但是你说你只想排除这些意味着你想要否定这个问题:
due: { $not: {
$gte: today.toDate(),
$lt: tomorrow.toDate()
}}
答案 1 :(得分:1)
希望这个例子可以帮到你:
Template.filmstrip.helpers({
album() {
var today = new Date();
today.setHours(0,0,0,0);
return photos.find(
{time: {$gte: today } },
{sort: {time:-1} }
).fetch();
}
});