我希望创建一个时间线REST api,它将拉取MongoDB数据条目并使用我在集合中创建的created_at属性来组织它们。
我希望将"时间线"几个不同分组的参赛作品。
第一个分组将是"过去24小时",第二个分组将是"昨天",第三个分组将是"上周"和最后的分组将是"其他一切"。我将限制其他一切"所以它很久以前就不会有很多东西......
我在Mongoose做的是一个MongoDB $组,我的created_at分组,但我遇到了问题,因为我只想做一个created_at"喜欢"因为我无法使用确切的时间戳或分组无法正常工作。
有没有人有类似的经历?我怎样才能扩展为使用多个分组,我可以先按"今天" (过去24小时),然后按周划分其他所有内容或"上周"?
我需要先做一个小组,然后在下一个分组中排除以前的分组结果。
感谢您的时间。
答案 0 :(得分:0)
为什么不将它分成三个查询? 今天的第一个查询:
var today = new Date();
var startOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
MyModel.find({created_on: {$gte: startOfToday}}, function (err, docs) { ... });
昨天的第二次查询:
var yesterday = new Date();
yesterday = yesterday.setDate(today.getDate() - 1);
var startOfYesterday = new Date(yesterday.getFullYear(), yesterday.getMonth(), yesterday.getDate());
MyModel.find({created_on: {$gte: startOfYesterday, $lt: startOfToday}}, function (err, docs) { ... });
第三个查询其他任何内容:
MyModel.find({created_on: {$lt: startOfYesterday}}, function (err, docs) { ... });