mongodb group操作 以及管道 aggregate 分组排序分页
分组获取数据:
db.express_info.group({ "key":{"express_code":true}, "initial":{"num":"0","mobile":"0"}, "reduce":function(doc,result){result.num++, result.mobile=doc.mobile}, "condition":{"mobile":"18663930231"},"finalize":function(result){result.is_push=result.num+1}})
分析:
key:分组使用的列
initial:设置初始返回元素
reduce:doc 是集合中的文档,result是initial的初始
condition:查询条件
finalize:在返回结果之前处理group的数据文档
返回数据:
[
{
"express_code" : "538419969049",
"num" : 17,
"mobile" : "18663930231",
"is_push" : 18
}
]
管道分组排序分页:
db.express_info.aggregate([{$match:{"mobile":"18663930231"}},{$group : {_id : "$express_code",date_time:{$first:"$datetime"},express_code:{$first:"$express_code"}, num_tutorial : {$sum : 1}}},{$sort:{"datetime":-1}},{$skip:5},{$limit:5}])
分析:
match:查询条件
group:分组
_id:分组条件
datetime:获取组内第一条数据的datetime,express_code 同理
num_tutorial:附加内容,用于统计组内数据量
sort:排序
skip:跳过多少条
limit:限制条数。
返回数据:
[
{ "_id" : "538419968955", "date_time" : "2018-01-15 14:33:44", "express_code" : "538419968955", "num_tutorial" : 17 }
{ "_id" : "812691219127", "date_time" : "2018-01-16 16:17:57", "express_code" : "812691219127", "num_tutorial" : 7 }
{ "_id" : "123123123123", "date_time" : "2018-01-25 14:42:37", "express_code" : "123123123123", "num_tutorial" : 1 }
mongodb group操作 以及管道 aggregate 分组排序分页的更多相关文章
- SQL 分组排序分页(大神帮写的膜拜一下)
查询全部: SELECT P3.ID, P3.Name, P3.AddTimeFROM (SELECT Name, MAX(AddTime) AS MaxAddTime FROM Product AS ...
- mysql 分组排序前n + 长表转宽表
MySQL数据库优化的八种方式(经典必看) 建表 CREATE TABLE if not EXISTS `bb` ( `id` int not null primary key auto_increm ...
- MongoDB.Driver 管道 Aggregate
目前mongodb for C#这个驱动,在进行Aggregate时,只支持BsonDocument类型,也就是说,你的集合collection也必须返回的是BsonDocument,而实体类型是不可 ...
- mongodb分组排序
@Override public MessageDto getCheckInMembersByFlight(String fltDt, String fltNr, String channel,Str ...
- MongoDB(课时28 group操作)
3.7.3 group操作 使用“group”操作可以实现数据的分组操作,MongoDB里将集合依据不同的的key进行分组操作,并且每个组产生一个处理文档. 范例:查询年龄大于等于19岁的学生信息,并 ...
- solr分组排序实现group by功能
http://wiki.apache.org/solr/FieldCollapsing solr分组排序,实现group by功能,代码待添加!
- MySQL进阶5--分组函数 / 分组排序和分组查询 group by(having) /order by
MySQL进阶--分组排序和分组查询 group by(having) /order by /* 介绍分组函数 功能:用做统计使用,又称为聚合函数或组函数 1.分类: sum, avg 求和 /平均数 ...
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- MongoDB高级操作
参考MongoDB菜鸟教程 一.$type操作符 MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1 String 2 Object 3 Array 4 ...
随机推荐
- Qt5.8 在windows下mingw静态编译
官方对编译一些条件介绍:https://doc.qt.io/qt-5/windows-requirements.html 在默认情况下,用QtCreator编译程序时,使用的是动态编译.编译好的程序在 ...
- 执行update语句mysql5.6报错ERROR 1292 (22007): Truncated incorrect DOUBLE value: '糖糖的坤大叔'
执行修改语句update tbl_user_details set nickname=CONCAT("用户",yunva_id) where nickname = yunva_id ...
- centos6.7安装系统后看不到网卡无法配置IP的解决办法
新安装centos6.7后发现/etc/sysconfig/network-scripts目录下没有eth0的网卡配置,通过ifconfig可以看到eth0的硬件地址 于是新建网卡输入一下内容 # c ...
- 转载:《理解RESTful架构》 阮一峰
原文:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件&q ...
- Mysql添加注释(comment)(转)
在MySQL数据库中, 字段或列的注释是用属性comment来添加. 创建新表的脚本中, 可在字段定义脚本中添加comment属性来添加注释. 示例代码如下: create table test( i ...
- 第一个Spring Boot程序
Windows 10家庭中文版,java version "1.8.0_152", Eclipse Oxygen.1a Release (4.7.1a),Spring Tools ...
- C# winform(计算器)
- Slick.js+Animate.css 结合让网页炫动起来
一个代码示例: html部分 <link rel='stylesheet prefetch' href='//cdnjs.cloudflare.com/ajax/libs/animate.css ...
- 《剑指offer》-前n项和不准用通解和各种判断
题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 这题目简直没事找事...为啥这么说,因为没有限 ...
- 【C++ Primer 第11章 练习答案】2. 关联容器概述
11.2.1节练习 [练习11.7]代码: #include<iostream> #include<string> #include<vector> #includ ...