第23章:MongoDB-聚合操作--聚合命令
范例:统计students表中的数据量
db.students.count();
范例:模糊查询
db.students.count("name":/张/i);
范例:求某个字段不同的值
db.students.distinct("name");
db.runCommand({"distinct":"students","key":"name"});
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-聚合操作--聚合命令的更多相关文章
- mongodb客户端操作常用命令(续)
之前有写过一篇mongodb客户端的操作常用命令 ,今天接着来记录分享一些关于mongodb账户权限设置的命令操作 上期mongodb客户端的操作常用命令地址:https://www.cnblogs. ...
- MongoDB的Spring-data-mongodb集成(Win10 x64) 第一章 - MongoDB安装与简单命令
这是MongoDB系列的第一章,作者将持续更新. 1.下载 https://www.mongodb.com/download-center#community 2.安装与配置 有关安装的任何困难请点击 ...
- mongodb客户端操作常用命令
一启动mongodb数据库mongod --dbpath E:\mongo\data\db(这里些自己的mongodb数据库存放目录)二客户端操作1.显示数据库集合show dbs2.新建数据库use ...
- mongodb数据库操作 python+命令行
一.python操作 from bson.objectid import ObjectId import pymongo client1 = pymongo.MongoClient(host=) ...
- [Python设计模式] 第23章 烤串的哲学——命令模式
github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟,顾客直接向烤串师傅提需求. class Barbecuer( ...
- .NET LINQ 聚合操作
聚合操作 聚合运算从值集合计算单个值. 从一个月的日温度值计算日平均温度就是聚合运算的一个示例. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 ...
- MongoDB的聚合操作以及与Python的交互
上一篇主要介绍了MongoDB的基本操作,包括创建.插入.保存.更新和查询等,链接为MongoDB基本操作. 在本文中主要介绍MongoDB的聚合以及与Python的交互. MongoDB聚合 什么是 ...
- MongoDB 基本操作和聚合操作
一 . MongoDB 基本操作 基本操作可以简单分为查询.插入.更新.删除. 1 文档查询 作用 MySQL SQL MongoDB 所有记录 SELECT * FROM users; db ...
- MongoDB中的聚合操作
根据MongoDB的文档描述,在MongoDB的聚合操作中,有以下五个聚合命令. 其中,count.distinct和group会提供很基本的功能,至于其他的高级聚合功能(sum.average.ma ...
- MongoDB入门---聚合操作&管道操作符&索引的使用
经过前段时间的学习呢,我们对MongoDB有了一个大概的了解,接下来就要开始使用稍稍深入一点的东西了,首先呢,就是MongoDB中的聚合函数,跟mysql中的count等函数差不多.话不多说哈,我们先 ...
随机推荐
- Android View 深度分析requestLayout、invalidate与postInvalidate
前言 前几篇文章中,笔者对View的三大工作流程进行了详细分析,而这篇文章则详细讲述与三大工作流程密切相关的两个方法,分别是requestLayout和invalidate,如果对Viwe的三个工作流 ...
- go语言使用go-sciter创建桌面应用(二) ui元素查找,增加,删除,修改
我们可以通过go-sciter给我们提供的方法,方便的对html,css编写的UI界面进行增删改查. demo3.go代码如下: package main; import ( "github ...
- 字典的增删改查 daty 5
字典:python中非常重要的数据类型,在python中唯一一个映射的数据类型数据类型分类 按照数据可变与不可变: # 不可变数据类型: int str bool tuple # 可变数据类型: li ...
- python re正则
一:什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并通过 r ...
- windbg 边学边记attach 进程和open dump的两个方式查看线程的占用cpu资源
首先我是attach到进程的方式,附加到进程把. vs里边有个远程调试就是通过连接到远程机附加到进程操作的.在 有公网IP情况下挺好用,但涉及到nat穿越之类的,因为用户的不方便设置,这种调试方式也有 ...
- 1、javaweb学习之配置文件web.xml
今天这里主要讲述javaweb中的配置文件web.xml中的内容及其作用,都是基础部分,对于初学者需要好好掌握理解. 简单配置: <servlet> <servlet-name ...
- 在IP网络中,P、PE、CE代表意思
1.ce , pe属于mpls vpn里的概念.VPN概念中,把整个网络中的路由器分为三类:用户边缘路由器(CE).运营商边缘路由器(PE)和运营商骨干路由器(P):其中,PE充当IP VPN接入路由 ...
- HDOJ4261 Estimation
一道需要用堆初始化的\(DP\) 原题链接 显然对于每一个部分,当\(b[i]\)为\(a\)对于部分的中位数时,差错最小.设\(S(x,y)\)表示\(x\sim y\)这一部分的差错. \(DP\ ...
- 几个H5炫酷特效
那H5里有哪些高级动效了?小编仔细体验了国内不少几个优秀H5页面作品,整理出下面几个H5页面特效.我们的H5作品如果能用上其中一两个,相信能增色不少! 1.粒子特效 —>>一键爆炸 模拟现 ...
- POJ 2135.Farm Tour 消负圈法最小费用最大流
Evacuation Plan Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4914 Accepted: 1284 ...