过滤今天的Meteor系列日期

时间:2016-06-12 13:34:42

标签: mongodb meteor

我的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,这可能会影响查询吗?

任何帮助将不胜感激。谢谢。

2 个答案:

答案 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();
  }
});