猫鼬聚合框架中按日期排序

2024-01-22

我正在使用 mongoose 开发一个 nodejs+mongodb 项目。现在我遇到了一个我不知道答案的问题。 我正在使用聚合框架来获取分组结果。分组是在不包括时间数据字段的日期完成的,例如:“2013 02 06”。代码如下所示:

MyModel.aggregate([
            {$match: {$and: [{created_date: {$gte: start_date}}, {created_date: {$lte: end_date}}]}},
            {$group: {
                _id: {
                    year: {$year: "$created_at"},
                    month: {$month: "$created_at"},
                    day: {$dayOfMonth: "$created_at"}
                },
                count: {$sum: 1}
            }},
            {$project: {
                date: {
                        year: "$_id.year",
                        month:"$_id.month",
                        day:"$_id.day"
                },
                count: 1,
                _id: 0
            }}
        ], callback);

分组结果很完美,只是没有排序。以下是输出示例:

[
    {
        count: 1,
        date: {
            year: 2013,
            month: 2,
            day: 7
        }
    },
    {
        count: 1906,
        date: {
            year: 2013,
            month: 2,
            day: 4
        }
    },
    {
        count: 1580,
        date: {
            year: 2013,
            month: 2,
            day: 5
        }
    },
    {
        count: 640,
        date: {
            year: 2013,
            month: 2,
            day: 6
        }
    }
]

我知道排序是通过添加以下内容来完成的:{$sort: val}。但现在我不确定应该是什么val因此结果将按日期排序,因为我的分组键是构造日期的 3 个值的对象。有谁知道如何实现这一点?

EDIT已经尝试过这个并且有效:)

{$sort: {"date.year":1, "date.month":1, "date.day":1}}


看来这个问题有一个非常简单的答案:)只需要按多个嵌套列进行排序,如下所示:

{$sort: {"date.year":1, "date.month":1, "date.day":1}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猫鼬聚合框架中按日期排序 的相关文章

随机推荐

  • 为什么 JVM 有最大内联深度?

    java有争论 XX MaxInlineLevel 默认值为 9 它控制内联嵌套调用的最大数量 为什么会有这样的限制 为什么基于频率和代码大小的常见启发法不足以让 JVM 自行决定内联的深度 这是由JitWatch https github
  • 如何关闭挂起应用程序的自动终止

    我正在尝试在 Windows 应用商店应用程序暂停时对其进行调试 尝试阻止我的服务器应用程序在其暂停并停止响应保持活动消息时踢出我的 WSA 客户端 但 Windows 在暂停我的应用程序后几乎立即终止它 有没有办法阻止 Windows 终
  • Protractor:通过属性值查找隐藏的输入元素

    我如何找到并获取如下所示的元素的值
  • 将选定的 RowCount 绑定到 TextBlock 在 DataGrid 滚动后不触发 OnPropertyChanged

    所有 我最近遇到一个问题 DataGrid当选定的行滚动时没有更新 使用多重选择时 WPF DataGrid 列损坏 https stackoverflow com questions 17459832 wpf datagrid colum
  • 将 --find-links URL 添加到 pyproject.toml 中的依赖项

    你可以安装python包Jax https github com google jax blob main setup py根据您的环境 有一些额外的软件包 For GPU pip install jax cuda find links h
  • 我应该使用 return/continue 语句而不是 if-else 吗?

    在 C C 和 C 中 当在函数或循环语句中使用条件时 可以使用continue or return尽早声明并摆脱else一个的分支if else陈述 例如 while loopCondition if innerCondition do
  • 使用私有 Bitbucket Mercurial 存储库配置composer.json

    我的项目使用我自己的库 该库位于 bitbucket org 上的私人 Mercurial 存储库中 该库没有配置composer json 我尝试将该库作为我的项目的依赖项 首先 我向composer json写入以下字符串 requir
  • 将派生类型作为参数传递给抽象类

    我想知道是否可以在 C 中实现与以下代码类似的签名 public abstract class baseClass public abstract float function derivedType a derivedType b pub
  • JQuery:如何将多行从一个表拖动到另一个表?

    这是Fiddle http jsfiddle net slashdottir vndC8 3 我有一个带有可多选的可拖动行的表格 但我想将它们一起拖到另一个表格并将它们放在那里 不是作为附加元素附加到另一个表格 而是对信息做一些事情 即表单
  • 如何设置组合框项目的可见性?

    我有 2 个 WPF 组合框 组合框A 组合框B 具有相同的组合框项目 Apple 和 Orange 假设我在组合框A中选择 Apple 那么 Apple 需要隐藏在组合框B中 如果我返回组合框 A 并选择 Orange Apple 将可
  • Spring AOP 切入点,方法名以 get 开头

    我正在尝试为 Spring AOP 实现切入点 所有的方法都像getXXXX应该被记录 我尝试了以下方法 但要么抛出异常 要么不触发 1st try Pointcut within net services get private void
  • 允许 Django 代理中间件中的逐跳标头

    我需要在 Django 中实现 HTTP 代理 我的 Google safari 引导我找到了一个名为django webproxy http code google com p django webproxy 虽然不再维护 但非常简单 大
  • react-native cli:启动时出错

    我按照说明安装了react native 但是 npm start 我出现以下错误 ERROR Metro Bundler can t listen on port 8081 Loading dependency graph npm ERR
  • 从控制台应用程序退出的正确方法[重复]

    这个问题在这里已经有答案了 我读过一些书here https stackoverflow com questions 12180512 exit from a console application in c sharp and here
  • React hooks 状态不使用最新版本

    我有下面的代码 我想在其中创建标签列表 在此示例中 我正在获取标签列表setAllTags 然后是一些可用的标签setAvailableTags 那么我遇到的问题是当setAvailableTags 运行它将删除在中获取的标签setAllT
  • 将 SQL 查询映射到 Nhibernate 中的业务对象

    我想将 SQL 查询映射到Business object using Nhibernate 员工表中有很多字段 但我只得到三个字段 并且只想映射那些字段 这是我的sql查询
  • 移动并修复手机 iOS 上录制的视频的 moovatom

    问题是如何找到并移动 iOS 设备上录制的 mov 文件的 moov 原子 以便可以通过 http 进行流式传输 有一种方法可以做到这一点 但这需要将其导出到文件 理论上这会让您复制整个文件 然后您就可以流式传输它 还有其他方法可以做到这一
  • Flask Admin 不显示所有字段

    我有这样的模型 class User db Model tablename users table args mysql engine InnoDB mysql charset utf8 id db Column db Integer pr
  • Android键盘滑动动画

    我对 Android 中的动画几乎没有 阅读 没有 经验 但想在键盘出现时实现动画 实际上 整个 Activity 看起来都在向上滑动 就像键盘位于 Activity 下方并将其向上推一样 而不是仅向上移动到所选的位置EditText 有谁
  • 猫鼬聚合框架中按日期排序

    我正在使用 mongoose 开发一个 nodejs mongodb 项目 现在我遇到了一个我不知道答案的问题 我正在使用聚合框架来获取分组结果 分组是在不包括时间数据字段的日期完成的 例如 2013 02 06 代码如下所示 MyMode