前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB数组聚合函数使用

MongoDB数组聚合函数使用

原创
作者头像
玖叁叁
发布2023-04-14 15:56:39
9160
发布2023-04-14 15:56:39
举报
文章被收录于专栏:玖叁叁玖叁叁

$unwind

$unwind函数用于将数组类型的数据展开,将数组中的每个元素作为单独的文档进行处理,例如:

代码语言:javascript
复制
db.orders.aggregate([
   { $unwind: "$items" },
   { $group: { _id: "$items.name", total: { $sum: "$items.price" } } }
])

这个命令将展开orders集合中的items数组,将每个items元素作为单独的文档进行处理,然后按照items.name字段进行分组,并计算每个分组的items.price字段之和。

$size

$size函数用于返回数组类型数据中的元素个数,例如:

代码语言:javascript
复制
db.orders.aggregate([
   { $project: { items_count: { $size: "$items" } } }
])

这个命令将计算orders集合中items数组的元素个数,并将结果保存到items_count字段中。

$slice

$slice函数用于返回数组类型数据中的指定范围的元素,例如:

代码语言:javascript
复制
db.orders.aggregate([
   { $project: { first_two_items: { $slice: ["$items", 2] } } }
])

这个命令将返回orders集合中items数组中的前两个元素,并将结果保存到first_two_items字段中。

$filter

$filter函数用于过滤数组类型数据中符合条件的元素,例如:

代码语言:javascript
复制
db.orders.aggregate([
   {
      $project: {
         discount_items: {
            $filter: {
               input: "$items",
               as: "item",
               cond: { $gt: [ "$$item.price", 100 ] }
            }
         }
      }
   }
])

这个命令将过滤orders集合中items数组中价格大于100的元素,并将结果保存到discount_items字段中。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • $unwind
  • $size
  • $slice
  • $filter
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档