MongoDB中聚合主要用于处理数据,如统计平均值,求和等等,并返回计算后的数据结果。

1. count

count函数返回指定集合中的数量。

> db. mediaCollection.count()

4

> db. mediaCollection.find( { Publisher : "Apress", Type: "Book" } ).count()

1

1

2

3

4

>db.mediaCollection.count()

4

>db.mediaCollection.find({Publisher:"Apress",Type:"Book"}).count()

1

2. distinct

distinct函数用来除重,找出所有不同的值。

> db. mediaCollection.distinct( "Title")

[ "Definitive Guide to MongoDB, the", "Nevermind" ]

> db. mediaCollection.distinct ("Tracklist.Title")

[ "In Bloom", "Smells like teen spirit" ]

1

2

3

4

>db.mediaCollection.distinct("Title")

["Definitive Guide to MongoDB, the","Nevermind"]

>db.mediaCollection.distinct("Tracklist.Title")

["In Bloom","Smells like teen spirit"]

3. group

group函数是类似于SQL的GROUP BY功能,虽然语法稍有不同。该命令的目的是返回分组的项目的数组。该函数有三个参数: key, initial,  reduce。

key参数指定要以什么来分组,如以标题进行分组。

initial参数每个分组reduce调用的初始值。

reduce参数同类元素放在一起,需要两个参数:当前被遍历的文档和聚集计数器对象。

> db. mediaCollection.group (

... {

... key: {Title : true},

... initial: {Total : 0},

... reduce : function (items,prev)

... {

... prev.Total += 1

... }

... }

... )

[

{

"Title" : "Definitive Guide to MongoDB, the",

"Total" : 1

},

{

"Title" : "Nevermind",

"Total" : 2

},

{

"Title" : null,

"Total" : 1

}

]

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

>db.mediaCollection.group(

...{

...key:{Title:true},

...initial:{Total:0},

...reduce:function(items,prev)

...{

...prev.Total+=1

...}

...}

...)

[

{

"Title":"Definitive Guide to MongoDB, the",

"Total":1

},

{

"Title":"Nevermind",

"Total":2

},

{

"Title":null,

"Total":1

}

]

除了key, initial,  reduce参数,还可以指定三个可选参数:keyf,cond,finalize。

group函数目前不能在分片环境下使用,可以使用MapReduce函数来代替。

mongodb 分组聚合_mongodb 聚合命令相关推荐

  1. mongodb 分组聚合_MongoDB聚合嵌套分组

    我有资产收集,其中包含数据 { "_id" : ObjectId("5bfb962ee2a301554915"), "users" : [ ...

  2. limit mongodb 聚合_MongoDB 聚合操作(转)

    在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复 ...

  3. MongoDB分组查询,聚合查询,以及复杂查询

    准备数据 from pymongo import MongoClient import datetimeclient=MongoClient('mongodb://localhost:27017') ...

  4. MongoDB分组查询、聚合查询

  5. mongodb 分组聚合_MongoDB干货总结

    什么是MongoDB 基于分布式文件存储的数据库,介于非关系型和关系型数据库之间. MongoDB和MySQL对比 MongoDB有什么特点 (1)面向集合存储数据,数据以json格式存储: (2)查 ...

  6. MongoCola使用教程 1 - MongoDB的基本操作和聚合功能

    前言 在开始正文之前,感谢博客园的Nosql爱好者对于MongoCola工具的试用(使用).特别感谢 呆呆 这位朋友的Bug报告,让我纠正了一个很严重的Bug.同时也感谢以前的多个网友在博客留言中给我 ...

  7. mongodb基础操作之聚合操作、索引优化

    mongodb基础操作之聚合操作.索引优化 更好的阅读体验 https://www.wolai.com/wrMtYWKdkzKYjoWM1i64qu 目录 聚合操作 聚合管道操作 Map-Reduce ...

  8. Django的mode的分组查询和聚合查询和F查询和Q查询

    1.聚合查询 # 聚合函数aggregate,求指定字段的最大值,最小值,平均值,和的值,方法如下from django.db.models import Avgfrom django.db.mode ...

  9. eNSP第二篇:Eth-trunk,链路聚合,常用命令,二层链路聚合和三层链路聚合

    链路聚合,Eth-trunk,ip-trunk 链路聚合:顾名思义,就是将多条链路聚合成一条链路,这条链路的带宽等于所有有效链路的总和:属于可靠性技术. 主要作用是:提高带宽,增加可靠性 在eNSP中 ...

最新文章

  1. 字符集 ISO-8859-1(1)
  2. 合并两个有序数组—leetcode88
  3. JAVA 判断Socket 远程端是否断开连接
  4. 浏览器保存密码后文本框出现黄色背景的解决方案
  5. 1.单进程SAPI生命周期
  6. 机器学习资料合计(一)
  7. CTR点击率预估实战分享
  8. OCJP认证有什么用
  9. C++ 负数在内存中存储
  10. ac命令行隐藏ssid_胖AP性能,多SSID,SSID隐藏,评测小结
  11. 如何用工具自动修复数字IC后端设计实现绕线后的Physical DRC_
  12. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.20)-- ANA
  13. PCM开发板模块实验指导--SPI读写PSRAM64实验
  14. 疫情让“灵活用工”浮出水面,作为Android开发的你“灵活用工”了吗?
  15. 简单的方法保存微信语音
  16. Docker修改镜像源为阿里云
  17. 保弘实业|理财要有合理的计划
  18. asp.ne服务器代码显示http://l.longtailvideo.com/download/5/9/logo.png不可用,在Window Server2008 服务器上无法播放MP4媒体问题
  19. 基于JAVA Frame的太阳系行星运转系统
  20. 超实用!Python机器学习书籍推荐——《Python神经网络编程》(一定要看到最后)

热门文章

  1. javascript兼容性:IE6/7关闭浏览器操作
  2. lambda表达式 java 效率_Java8新特性效率之Lambda
  3. XElement.Load 需要释放吗_奥施康定掰开后能当即释片用吗?
  4. 如何解决aText for mac不响应的教程
  5. 1.5 编程基础之循环控制 33 计算分数加减表达式的值 python
  6. 第43课 最大公约数 动动脑 第2题《小学生C++趣味编程》
  7. 1.5 编程基础之循环控制 35 求出e的值
  8. GIT上传下载报错:[You do not have permission to pull from the repository]的解决方案!
  9. java精通时间_你真的精通 Java 吗?
  10. mysql对结果限制_在查询中限制MySQL结果