①count()

范例:统计students表中的数据量

db.students.count();

范例:模糊查询

db.students.count("name":/张/i);

②distinct()

范例:求某个字段不同的值

db.students.distinct("name");

db.runCommand({"distinct":"students","key":"name"});

③group()

key: 用于指定要分组的键

initial: 对于分组统计的字段设置键名和初始值

reduce: 循环每个分组中的每个文档,一组循环完了会继续下一组

condition:用于分组前筛选掉不满足条件的文档

finalize: 用于对分组后的结果进一步处理,每组都会调用finalize

db.articles.group({

"key": {"author": true},

"initial": {"sum": 0},

"reduce": function(doc, prev) {

if(doc.like > 10) {

prev.sum += 1;

}

}

})

[

{

"author" : "zhangsan",

"sum" : 2

},

{

"author" : "lisi",

"sum" : 2

},

{

"author" : "mengday",

"sum" : 0

}

]

db.articles.group({

"key": {"author": true},

"initial": {"sum": 0},

"reduce": function(doc, prev) {

if(doc.like > 10) {

prev.sum += 1;

}

},

"condition":{"author": {"$ne": "mengday"}}

})

[

{

"author" : "zhangsan",

"sum" : 2

},

{

"author" : "lisi",

"sum" : 2

}

]

db.articles.group({

"key": {"author": true},

"initial": {"sum": 0},

"reduce": function(doc, prev) {

if(doc.like > 10) {

prev.sum += 1;

}

},

"condition":{"author": {"$ne": "mengday"}},

"finalize": function(doc){

if(doc.author == "zhangsan"){

delete doc

}

}

})

[

{

"author" : "zhangsan",

"sum" : 3

},

{

"author" : "lisi",

"sum" : 2

}

]

范例:查询所有年龄大于等于19岁的学生信息,并且按照年龄分组

db.runCommand({"group":{

"ns":"students",//集合

"key":{"age":true},//按照age分组

"initial":{"count":0},//默认数量为0

"condition":{"age":{"$gt":19}},//条件

"$reduce":function(doc,prev){//完成后的操作

prev.count ++;

}

}});

转载于:https://www.cnblogs.com/Lucky-stars/p/10555313.html

第23章:MongoDB-聚合操作--聚合命令相关推荐

  1. mongodb客户端操作常用命令

    一启动mongodb数据库 mongod --dbpath E:\mongo\data\db(这里些自己的mongodb数据库存放目录) 二客户端操作 1.显示数据库集合 show dbs 2.新建数 ...

  2. [Python设计模式] 第23章 烤串的哲学——命令模式

    github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟,顾客直接向烤串师傅提需求. class Barbecuer( ...

  3. Scrapy框架之MongoDB聚合操作

    目录 MongoDB聚合操作 聚合操作的基本语法 常用的聚合操作 管道命令之$group 按照某个字段进行分组 详解 计算集合中某个字段的平均值 常用表达式 管道命令之$match 示例 管道命令之$ ...

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

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

  5. 2021年大数据常用语言Scala(二十七):函数式编程 聚合操作

    目录 聚合操作 聚合  reduce 定义 案例 折叠  fold 定义 案例 聚合操作 聚合操作,可以将一个列表中的数据合并为一个.这种操作经常用来统计分析中 聚合  reduce reduce表示 ...

  6. 第10章 MongoDB 删除数据库教程

    MongoDB 删除database 语法 MongoDB 删除database的语法格式如下: db.dropDatabase() 删除当前database,默认为 test,尊敬的读者您可以使用 ...

  7. 第46章 MongoDB 自动增长教程

    第46章 MongoDB 自动增长教程 MongoDB 没有像 SQL 一样有自动增长的功能, MongoDB 的 _id 是系统自动生成的12字节唯一标识. 但在某些情况下,咱们可能需要实现 Obj ...

  8. MongoDB数据库操作---mongoose操作

    Mongoose认知概念 Mongoose是MongoDB的一个对象模型工具,其可以在一部环境下执行.同时它也是针对MongoDB操作的一个队形模型库,封装了MongoDB对文档的一些增删改查等常用方 ...

  9. mongodb的聚合操作

    mongodb的聚合操作 1 mongodb的聚合是什么 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组.过滤等功 ...

  10. MongoDB数据库(5.mongodb的聚合操作以及mongodb的高级查询2)

    聚合aggregate 聚合(aggregate) 是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage) 组成的管道,可以对每个阶段的  管道进行分组.过滤等功能,然后经过一系列的处理, ...

最新文章

  1. Chart.js-饼状图分析(参数分析+例图)
  2. PowerDesigner最基础的使用方法入门学习
  3. golang中的信号
  4. 如何编写代码使jsp程序错误在输入框上面显示_252尚学堂百战程序员049天
  5. Kali-linux安装设置
  6. 漂亮表格的CSS定义
  7. 关于async和await的探讨
  8. nginx 监听同一端口
  9. CSS3 移动端开发技巧
  10. 惩罚函数外点matlab,禁忌搜索算法求解带时间窗的车辆路径问题(惩罚函数版 附MATLAB代码)...
  11. go语言查询某个值是否在数组中_一日一技:在 Golang 中如何快速判断字符串是否在一个数组中...
  12. utc时间 单位换算_utc时间(utc时间转换北京时间)
  13. 用matlab求roc曲线的面积Auc,sklearn计算ROC曲线下面积AUC
  14. Pwn-高阶ROP-[栈溢出]/篇3
  15. JAVA新手,开始起航~~
  16. QingCloud Insight 2016 | 科技,洞见未来
  17. 《操作系统导论》第37章课后答案
  18. Python编程基础题(9-求绝对值最大的元素)
  19. 神策军丨心中不留退路,才能全力以赴
  20. asp.net 引入html文件路径问题,asp.net 网站获取一个文件或文件夹的绝对路径,使用方法Server.MapPath(项目根目下虚拟文件路径)实现...

热门文章

  1. LA 2957 最大流,最短时间,输出路径
  2. ES6 学习笔记 (1)
  3. nodejs创建http服务器
  4. Java this, super深入理解
  5. 流程控制库async
  6. 丹麦IQ145满分全部完美解谜(zz)
  7. 一个分页效果ruby版可作为面试题吧
  8. 差分进化算法原理及matlab代码实现
  9. html 多页面合并,让多个HTML页面 使用 同一段HTML代码
  10. android程序的建立,创建第一个Android程序 HelloWorld