首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MongoDB中按日期分组

问如何在MongoDB中按日期分组
EN

Stack Overflow用户
提问于 2017-05-22 16:12:32
回答 1查看 218关注 0票数 0

我希望创建一个时间线REST,它将提取MongoDB数据条目并使用集合中的created_at属性组织它们。

我希望通过几个不同的分组将“时间线”条目分开。

第一组是“持续24小时”,第二组是“昨天”,第三组是“上周”,最后一组是“其他一切”。我会限制“其他一切”,这样它就不会扯上很久以前的东西……

我在Mongoose中所做的是一个按我的MongoDB $group分组的created_at,但是我有一个问题,因为我只是想做一个“喜欢”的created_at,因为我不能使用确切的时间戳,或者分组不能工作。

有人有类似的经验吗?我如何将其扩展到使用多个分组,其中我可以首先按“今天”分组(持续24小时),然后按周或“最后一周”分组其他所有内容?

我需要先做一个组,然后在下一个分组中排除前面的分组结果。

耽误您时间,实在对不起。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 02:57:33

为什么不把它分成三个查询呢?今天的第一次查询:

代码语言:javascript
复制
   var today = new Date();
   var startOfToday = new Date(today.getFullYear(), today.getMonth(), today.getDate());
   MyModel.find({created_on: {$gte: startOfToday}}, function (err, docs) { ... });

昨天的第二次查询:

代码语言:javascript
复制
   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) { ... });

第三次查询其他内容:

代码语言:javascript
复制
   MyModel.find({created_on: {$lt: startOfYesterday}}, function (err, docs) { ... });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44117566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档