千家信息网

聚合的方法介绍

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,聚合( Aggregation )为集合文档数据提供各种处理数据方法,并返回计算结果。MongoDB 提供了3 种方式来执行聚合命令:聚合管道方法、map-reduce 方法和单一目标聚合方法。1.聚
千家信息网最后更新 2026年10月31日聚合的方法介绍

聚合( Aggregation )为集合文档数据提供各种处理数据方法,并返回计算结果。MongoDB 提供了3 种方式来执行聚合命令:聚合管道方法、map-reduce 方法和单一目标聚合方法。


1.聚合管道方法
聚合管道方法又可以直接理解为合计流水线法,就是把集合里若干含数值型的文档记录,其键对应的值进行各种分类统计。该方法支持分片集合操作。

语法: db.collection_name.aggregate(
[{$match: {{$group:{,< field2 >}}
//fieldl 为分类字段; field2 为含各种统计操作符的数值型字段,如$sum、$avg、$min、$max、$push、$addToSet、$first、$last操作符

db.Sale_detail.aggregate(    [        {            $match: {ok : false}  //查找条件,与find()的查找条件使用方法一样        },        {            $group: {                _id: "$goodsid",                total: {$sum: "$amount"}  //按goodsid分类统计amount字段的总数量            }        }    ])

_id :"$goodsid" ,goodsid为分类字段名,_id为必须指定唯一性字段,不能改为其他名称的字段;total为统计结果字段名,可以是任意的符合起名规则的新名称。$sum为求和操作符号, $amount为求和字段,必须加上双引号。


2. map-reduce方法

语法: db.collection_name. mapreduce(
function() {emit( ,)},
function(key, value){return array.sum(values)},
{query: {} ,out:<"resultname">}

命令说明:

function(){emit(, )},把集合对应的字段<field1>

把自field1值和求得值连同out:<"resultname">一起返回。

query:{}在集合里查询符合条件的文档。
该方式进行聚合运算,效率较聚合管道方式要低,而且使用更复杂。


3. 单一目标聚合方法
该方法下,目前有两种聚合操作功能:db.collection_name.count()和db.collection_name.distinct()。
(1)语法:db.collection_name.count(query, options)
命令说明:统计集合里符合查询条件的文档数量, query 为查询条件, option 参数详细说明如表


统计符合条件的记录数

db.Sale_detail.count({ok: false})


从第二条开始统计符合条件的记录数

db.Sale_detail.count({ok: false}, {skip: 1})


统计指定键的不同值并返回不同值

db.Sale_detail.distinct("goodsid")


单一目标聚合方法,可以直接在find()后加点使用。
如goodsdb.Sale_detail.find({ok:false}).count()
goodsdb.Sale_detail.find({ok:false}).count().skip(1)

方法 字段 统计 条件 文档 管道 分类 命令 方式 目标 语法 查询 不同 名称 操作符 数值 数据 数量 结果 复杂 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网产品 美国互联网科技巨头监管 互联网科技开发公司 科技服务与互联网 南京欣网互联网科技 互联网科技美容 一五八零互联网科技 中国互联网金融科技基金 汽车互联网创新科技园 栖莱科技互联网股份有限公司 消费医药和互联网科技 互联网保险科技创业 上海科技产业互联网平台 富国互联网金融科技混合基金 科技互联网经济论坛 互联网科技和医药行业 安徽零酒互联网科技有限公司 恒生科技指数 中概互联网 盐城市攀科互联网科技有限公司 互联网科技快速发展优美句子 广州大一互联网络科技有限公司 厦门中拓互联网络科技有限公司 互联网科技的 电子科技大学互联网 济南华为互联网科技产业总部基地 广州新华互联网科技学校电竞方面 福州德业互联网科技 安徽零酒互联网科技有限公司 东风日产互联网科技公司叫什么 现代科技的标志之一的互联网
0