MongoDB 聚合管道(aggregate)

1、聚合函数

  • 查询总数 .count()

> db.userinfo.count()
3
> db.userinfo.find()
{ "_id" : 1, "name" : "郭大爷", "sex" : "男", "age" : "80" }
{ "_id" : 2, "name" : "郭老师", "sex" : "男", "age" : "不详" }
{ "_id" : 3, "name" : "郭少爷", "sex" : "男", "age" : "18" }

2、aggregate() 方法

我们先插入一些测试数据

{
    "_id" : ObjectId("5abc960c684781cda6d38027"),
    "name" : "郭大爷",
    "sex" : "男",
    "age" : 80.0,
    "skil" : [
        "PHP",
        "Js",
        "MySql",
        "Html",
        "Css"
    ]
}
{
    "_id" : ObjectId("5abc960c684781cda6d38028"),
    "name" : "郭大爷",
    "sex" : "男",
    "age" : 60.0,
    "skil" : [
        "PHP",
        "MySql"
    ]
}
{
    "_id" : ObjectId("5abc960c684781cda6d38029"),
    "sex" : "女"
}
{
    "_id" : ObjectId("5abc960c684781cda6d3802a"),
    "name" : "郭少爷",
    "sex" : "男",
    "age" : 18.0,
    "skil" : [
        "Css",
        "Java",
        "Html"
    ]
}
  • 求和

查询一下所有人年龄的总和

db.userinfo.aggregate([
    { $group : {
        _id : null,
        age_sum : { $sum : "$age" }
    }}
])

结果

{
    "_id" : null,
    "age_sum" : 158.0
}
  • 平均值

  • 最小值

  • 最大值

  • 获取第一个文档

  • 获取最后一个文档

原文地址:https://www.cnblogs.com/handsCool/p/8669811.html

时间: 2024-11-08 10:26:13

MongoDB 聚合管道(aggregate)的相关文章

Mongodb中数据聚合之聚合管道aggregate

在之前的两篇文章<Mongodb中数据聚合之基本聚合函数count.distinct.group>和<Mongodb中数据聚合之MapReduce>中,我们已经对数据聚合提供了两种实现方式,今天,在这篇文章中,我们讲讲在Mongodb中的另外一种数据聚合实现方式--聚合管道aggregate. 面对着广大用户对数据统计的需求,Mongodb从2.2版本之后便引入了新的功能聚合框架(aggregation framework),它是数据聚合的新框架,这个概念类似于数据处理中的管道.每

MongoDB 聚合管道(Aggregation Pipeline)

MongoDB 聚合管道(Aggregation Pipeline) - 张善友 时间 2013-12-27 22:40:00            博客园_张善友相似文章 (0)原文                  http://www.cnblogs.com/shanyou/p/3494854.html添加到推刊 收藏到推刊创建推刊 收 藏  取消 已收藏到推刊! 创建推刊 × Modal header --> 请填写推刊名 描述不能大于100个字符! 权限设置: 公开    仅自己可见

MongoDB聚合管道

通过上一篇文章中,认识了MongoDB中四个聚合操作,提供基本功能的count.distinct和group,还有可以提供强大功能的mapReduce. 在MongoDB的2.2版本以后,聚合框架中多了一个新的成员,聚合管道,数据进入管道后就会经过一级级的处理,直到输出. 对于数据量不是特别大,逻辑也不是特别复杂的聚合操作,聚合管道还是比mapReduce有很多优势的: 相比mapReduce,聚合管道比较容易理解和使用 可以直接使用管道表达式操作符,省掉了很多自定义js function,一定

MongoDB基础教程系列--第七篇 MongoDB 聚合管道

在讲解聚合管道(Aggregation Pipeline)之前,我们先介绍一下 MongoDB 的聚合功能,聚合操作主要用于对数据的批量处理,往往将记录按条件分组以后,然后再进行一系列操作,例如,求最大值.最小值.平均值,求和等操作.聚合操作还能够对记录进行复杂的操作,主要用于数理统计和数据挖掘.在 MongoDB 中,聚合操作的输入是集合中的文档,输出可以是一个文档,也可以是多条文档. MongoDB 提供了非常强大的聚合操作,有三种方式: 聚合管道(Aggregation Pipeline)

【翻译】MongoDB指南/聚合——聚合管道

[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.MongoDB提供了三种执行聚合的方式:聚合管道,map-reduce方法和单一目的聚合操作. 聚合管道 MongoDB的聚合框架模型建立在数据处理管道这一概念的基础之上.文档进入多阶段管道中,管道将文档转换为聚合结果.最基本的管道阶段类似于查询过滤器和修改输出文档形式的文档转换器. 其他的管道为分组和

mongodb聚合查询

MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). $sum 计算总和. db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}]) $avg 计算平均值 db.mycol.aggregate([{$group : {_id : "$by_use

mongodb MongoDB 聚合 group

MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). 基本语法为:db.collection.aggregate( [ <stage1>, <stage2>, ... ] ) 现在在mycol集合中有以下数据: { "_id" : 1, "name" : "tom", "sex" :

mongodb MongoDB 聚合 group(转)

MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). 基本语法为:db.collection.aggregate( [ <stage1>, <stage2>, ... ] ) 现在在mycol集合中有以下数据: { "_id" : 1, "name" : "tom", "sex" :

【mongoDB查询进阶】聚合管道(二) -- 阶段操作符

https://segmentfault.com/a/1190000010826809 什么是管道操作符(Aggregation Pipeline Operators) mongoDB有4类操作符用于文档的操作,例如find查询里面会用到的$gte,$in等.操作符以$开头,分为查询操作符,更新操作符,管道操作符,查询修饰符4大类.其中管道操作符是用于聚合管道中的操作符. 管道操作符的分类 管道操作符可以分为三类: 阶段操作符(Stage Operators) 表达式操作符(Expression