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 小时前
MongoDB 大数据备份,新手教程
数据库·mongodb
meilindehuzi_a7 小时前
从零开始:用原生 Node.js 徒手拆解 RAG 与向量检索底层原理
node.js·rag
炒毛豆7 小时前
ai全栈-node.js相关的学习之路(草稿版)
学习·node.js
meilindehuzi_a9 小时前
解密 MCP 协议:如何用 Node.js 从零手写一个本地文件读取 MCP 服务器
运维·服务器·node.js
大郭鹏宇1 天前
MongoDB快速实战与基本原理入门
数据库·mongodb
葫芦和十三2 天前
图解 MongoDB 25|分片架构三件套:mongos、config server 和 shard
后端·mongodb·agent
葫芦和十三3 天前
图解 MongoDB 26|片键设计:决定集群命运的一个决定
后端·mongodb·agent
hoLzwEge3 天前
pnpm vs npm:新一代包管理器的范式革命
前端框架·node.js
麻辣凉茶3 天前
给阿嬤一封来自云端的信(上)
前端·node.js
葫芦和十三3 天前
图解 MongoDB 24|分片为什么存在:垂直扩容的天花板
后端·mongodb·agent