【发布时间】:2014-04-15 01:14:51
【问题描述】:
我的集合中有一个名为 dateacquired 的属性,日期格式如下:2014-03-28 06:08:00。
我需要从当前日期拉回我的集合中小于或等于一个月前的所有文档。我只是不确定如何编写此查询。
有人知道如何开始这样的事情吗?
【问题讨论】:
我的集合中有一个名为 dateacquired 的属性,日期格式如下:2014-03-28 06:08:00。
我需要从当前日期拉回我的集合中小于或等于一个月前的所有文档。我只是不确定如何编写此查询。
有人知道如何开始这样的事情吗?
【问题讨论】:
我假设这些日期存储为字符串?您可以使用 mongoDB 比较运算符 $gt 或 $lt 比较字符串,它们会按您的预期工作。我还将使用Sugar 让我的生活更轻松(强烈推荐;通过mrt add sugarjs 添加),这为我提供了Date.create 和Date.format 方法,将其简化为单行:
var cursorOfDocumentsSinceOneMonthAgo = yourCollection.find({
dateacquired:
{ $gt: Date.create("1 month ago").format("{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}")
}
});
【讨论】:
我最近nDays有多少人注册的流星法:
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 注册的人数。
【讨论】: