node.js mongoose aggregate

目录

官方文档

简述

Aggregate的原型方法

aggregate进行操作


官方文档

Mongoose v8.0.3: Aggregate

简述

在 Mongoose 中,Aggregate 是用于执行 MongoDB 聚合操作的类。MongoDB 聚合操作是一种强大的数据处理工具,可以用于对集合中的文档进行变换和计算

通过Model.aggregate创建一个aggregate(Aggregate类的实例)

javascript 复制代码
const aggregate = Model.aggregate()

Aggregate的原型方法

aggregate进行操作

对aggregate对象进行操作

javascript 复制代码
aggregate.match({...})
aggregate.group({...})
aggregate.sort({...})
aggregate.project('...')

aggregate链式操作,因为Aggregate的原型方法返回的是this(aggregate实例自身)

javascript 复制代码
aggregate.match({...}).group({...}).sort({...}).project('...')

或者通过传入pipeline参数

javascript 复制代码
const aggregate = await Model.aggregate([
  {
    $match: { ... }
  },
  {
    $group: { ... }
  },
  {
    $sort: { ... }
  },
  {
    $match: { ... }
  }
]);

控制台打印aggregate查看所积累的pipeline操作

得到查询结果

也可通过async await的方式获得查询结果

javascript 复制代码
//async try... catch

const resQuery = await aggregate

完整的操作,只是示例

javascript 复制代码
  const aggregate = Tour.aggregate([
    {
      $match: { ratingsAverage: { $gte: 4.5 } }
    },
    {
      $group: {
        _id: { $toUpper: '$difficulty' },
        numTours: { $sum: 1 },
        numRatings: { $sum: '$ratingsQuantity' },
        avgRating: { $avg: '$ratingsAverage' },
        avgPrice: { $avg: '$price' },
        minPrice: { $min: '$price' },
        maxPrice: { $max: '$price' }
      }
    },
    {
      $sort: { avgPrice: 1 }
    },
    {
      $match: { _id: { $ne: 'EASY' } }
    }
  ]);
  const stats = await aggregate
相关推荐
毛小茛2 小时前
pnpm 已经安装成功,但 npm 的全局 bin 目录没有进 PATH
前端·npm·node.js
冬奇Lab4 小时前
Vercel部署全攻略:从GitHub到上线,10分钟让你的前端项目免费拥有自己的域名
前端·后端·node.js
天远数科5 小时前
Node.js全栈开发:深度集成天远贷前风险报告接口打造风控中台
大数据·node.js
wengad6 小时前
mongoDB安全漏洞CVE-2025-14847修复方案
数据库·mongodb
ljh5746491196 小时前
npm run build:prod 打包后,文件中的console.log 失效
前端·npm·node.js
Dreamcatcher_AC1 天前
慢慢买项目:一站式开发指南
前端·javascript·mongodb·node.js
清风6666661 天前
基于单片机的N型热电偶PID锅炉温度控制系统
数据库·单片机·mongodb·毕业设计·课程设计·期末大作业
源代码杀手1 天前
从 0 到 1 重新部署新的Node.js 项目到 Cloudflare Workers:避坑指南 + 完整流程
node.js
wgc2k1 天前
Nest.js基础-2、Node.js的版本管理和包管理
开发语言·javascript·node.js
AC赳赳老秦2 天前
DeepSeek+Power BI:数据导入脚本生成与可视化图表优化技巧
数据库·mongodb·信息可视化·流程图·mapreduce·数据库架构·deepseek