流星,MongoDB.从集合中获取数据的麻烦(查找两个日期之间的文档)

Meteor & MongoDB. Troubles with getting data from collection (finding documents between two dates)

本文关键字:查找 两个 文档 之间 日期 麻烦 MongoDB 集合 数据 获取 流星      更新时间:2023-09-26

我试图从位于两个日期之间的集合中获得一些文档(例如,有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');
        }
    });

但是它总是返回所有文档(所以过滤器不起作用)。问题不在会话变量'sortBy'中,它工作得很好。

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

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