流星& MongoDB的。从收集中获取数据(在两个日期之间查找文档)的麻烦

时间:2015-07-18 14:45:14

标签: javascript mongodb meteor

我试图从两个日期之间的集合中获取一些文档(例如,差异为5小时)。我的代码:

Session.setDefault('sortBy', 'time');
    Template.content.helpers({
        posts: function() {
            if( Session.equals('sortBy', 'time') ){
                return Posts.find({author: Meteor.user().username}, {sort: {date_created: -1}});
            } 
            else if( Session.equals('sortBy', 'hours') ) {
                var endDate = new Date();
                var startDate = new Date(endDate);
                startDate.setHours(endDate.getHours()-5);
                console.log("startDate: " + startDate);
                console.log("endDate: " + endDate);

                return Posts.find({author: Meteor.user().username}, {date_created: {$gte: startDate,$lt: endDate}})
            }
        }
    });
    Template.content.events({
        'click .lasthour': function(e) {
            return Session.set('sortBy', 'hours');
        },
        'click .nosort': function(e) {
            return Session.set('sortBy', 'nosort');
        }
    });

但它总是返回所有文档(因此过滤器不起作用)。 并且问题不在Session变量' sortBy'中,它工作正常。

1 个答案:

答案 0 :(得分:1)

您的查询格式错误。应该是这样的:

return Posts.find(
  {
    author: Meteor.user().username,
    date_created: {$gte: startDate, $lt: endDate}
  }
);