使用Meteor Js的日期范围Mongo查询

时间:2014-04-15 01:14:51

标签: mongodb meteor

我的收藏中有一个名为dateacquired的属性,日期格式为:2014-03-28 06:08:00

我需要从当前日期撤回我的收藏中小于或等于一个月前的所有文件。我只是不确定如何编写此查询。

任何人都知道如何开始这样的事情吗?

2 个答案:

答案 0 :(得分:2)

我假设这些日期存储为字符串?您可以将字符串与mongoDB比较运算符$gt$lt进行比较,它们可以按预期工作。我还将使用Sugar让我的生活更轻松(强烈推荐;通过mrt add sugarjs添加),这为我提供了Date.createDate.format方法,可以将其简化为单行:

  var cursorOfDocumentsSinceOneMonthAgo = yourCollection.find({
    dateacquired:
      { $gt: Date.create("1 month ago").format("{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}")
      }
    });

答案 1 :(得分:2)

关于过去几天有多少人注册的我的流星方法:

userCountPreviousDays: function (nDays) {
    check(nDays, Number);

    var arr = [];

    var now = new Date().getTime();
    var msInDay = 1000 * 60 * 60 * 24;

    for (var i = 0; i < nDays; i++) {
      arr[i] = Meteor.users.find({
        createdAt: {
          $lt: new Date(now - (msInDay * i)),
          $gt: new Date(now - (msInDay * (i+1)))
        }
      }).count();
    };

    return arr;
}

arr[i]i天之前签约的人数。