MongoDB 聚合管道(aggregate)

Posted handscool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
}
  • 平均值

  • 最小值

  • 最大值

  • 获取第一个文档

  • 获取最后一个文档

以上是关于MongoDB 聚合管道(aggregate)的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 聚合管道(Aggregation Pipeline)

MongoDB 聚合管道(Aggregation Pipeline)

MongoDB:聚合aggregate

MongoDB 聚合(管道与表达式)

MongoDB聚合(aggregate)

MongoDB 聚合管道(aggregate)