①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 ++;

}

}});

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

第23章:MongoDB-聚合操作--聚合命令的更多相关文章

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

    之前有写过一篇mongodb客户端的操作常用命令 ,今天接着来记录分享一些关于mongodb账户权限设置的命令操作 上期mongodb客户端的操作常用命令地址:https://www.cnblogs. ...

  2. MongoDB的Spring-data-mongodb集成(Win10 x64) 第一章 - MongoDB安装与简单命令

    这是MongoDB系列的第一章,作者将持续更新. 1.下载 https://www.mongodb.com/download-center#community 2.安装与配置 有关安装的任何困难请点击 ...

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

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

  4. mongodb数据库操作 python+命令行

      一.python操作 from bson.objectid import ObjectId import pymongo client1 = pymongo.MongoClient(host=) ...

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

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

  6. .NET LINQ 聚合操作

    聚合操作      聚合运算从值集合计算单个值. 从一个月的日温度值计算日平均温度就是聚合运算的一个示例. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 ...

  7. MongoDB的聚合操作以及与Python的交互

    上一篇主要介绍了MongoDB的基本操作,包括创建.插入.保存.更新和查询等,链接为MongoDB基本操作. 在本文中主要介绍MongoDB的聚合以及与Python的交互. MongoDB聚合 什么是 ...

  8. MongoDB 基本操作和聚合操作

    一 . MongoDB 基本操作 基本操作可以简单分为查询.插入.更新.删除. 1 文档查询 作用 MySQL SQL  MongoDB  所有记录  SELECT * FROM users;  db ...

  9. MongoDB中的聚合操作

    根据MongoDB的文档描述,在MongoDB的聚合操作中,有以下五个聚合命令. 其中,count.distinct和group会提供很基本的功能,至于其他的高级聚合功能(sum.average.ma ...

  10. MongoDB入门---聚合操作&管道操作符&索引的使用

    经过前段时间的学习呢,我们对MongoDB有了一个大概的了解,接下来就要开始使用稍稍深入一点的东西了,首先呢,就是MongoDB中的聚合函数,跟mysql中的count等函数差不多.话不多说哈,我们先 ...

随机推荐

  1. java常量类编译问题

    常量类编译后并不在.class文件中呈现,取而代之的是各个具体的常量.例如: 编译前:(Constant.OPTIONSRADIO常量值为1) 编译后: 应用场景 1,项目编译后发布项目前可以删除常量 ...

  2. linux命令学习之:systemctl

    systemctl命令是系统服务管理器指令,主要负责控制systemd系统和服务管理器,它实际上将 service 和 chkconfig 这两个命令组合到一起. CentOS 7.x开始,CentO ...

  3. SideBar 选择城市时右侧边上的 选择bar

    需要定义一个SideBar的视图类  在布局文件中引用   同时在布局中设置一个textView默认不可见 当触摸时才显示   在调用的Activity中 sideBar.setOnTouchingL ...

  4. 错误:“Cannot load JDBC driver class 'com.mysql.jdbc.Driver”的解决方法

    “Cannot load JDBC driver class 'com.mysql.jdbc.Driver ” 表示没有JDBC连接MySql的驱动包,因此需要手动添加驱动包到WEB-INF目录下的l ...

  5. 运行./build.sh出现错误:bash: ./build.sh: Permission denied

    原因:文件为只读,或者用户没有权限. 修改方法:   运行命令: chmod 777 build.sh

  6. 分享插件的使用加一个echart走数据

    html部分: <div class="topLink clearfix bdsharebuttonbox  bdshare-button-style0-16" data-b ...

  7. javascript 生存周期

    生存周期: 局部 JavaScript 变量 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它.(该变量的作用域是局部的). 您可以在不同的函数中使用名 ...

  8. php伪静态与重定向

    什么是伪静态 伪静态是相对于真静态来讲的,伪静态只是改变了URL格式,实际还是动态页面,有真静态一样的SEO,真静态访问一个静态页面,服务器(apache,nginx)直接读取磁盘静态文件,伪静态是动 ...

  9. 2019年Java未来的发展方向

    2018即将结束,迎来2019年,Java作为世界上 最流行的计算机编程语言,在当今信息时代中发挥了重要的作用.Java语言本身具有着自己独特的优势:面向对象.分布式应用并且安全.多线程.跨平台等.这 ...

  10. git分支切换时的时间戳问题

    1.为什么git仓库没有保留文件修改时的时间戳?  摘自:https://git.wiki.kernel.org/index.php/Git_FAQ#Why_isn.27t_Git_preservin ...