我的收藏中有一个名为dateacquired
的属性,日期格式为:2014-03-28 06:08:00
。
我需要从当前日期撤回我的收藏中小于或等于一个月前的所有文件。我只是不确定如何编写此查询。
任何人都知道如何开始这样的事情吗?
答案 0 :(得分:2)
我假设这些日期存储为字符串?您可以将字符串与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}")
}
});
答案 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
天之前签约的人数。