1、 多字段分组

{"$group":{"_id":
{"state": "$state", "city": "$city"}}
}

根据state和city两个字段分组统计数据。

2、 算术操作符

  • "$sum": value
    得到每个国家的总收入:
db.sales.aggregate{
{
"$group":{
"_id":"$country",
"totalRevenue":{"$sum":"$revenue"}
}
}}
  • "$avg":value
    返回每个分组的平均值。
    3、极值操作符
  • "$max":value
    返回分组中最大值。
  • "$min":value
    返回分组中最小值。
  • "$first":value
    返回分组中第一个值。
  • "$last":value
    返回分组中最后一个值。
db.scores.aggregate{
{
"$group":{
"_id":"$grade",
"lowestScore":{"$min":"$score"},
"highestScore":{"$max":"$score"}
}
}}

有序的时候用first和last效率更高。否则用min和max。
4、数组操作符

  • "$addToSet":expr
    如果当前数组中不包含expr,那就将它添加到数组中。没有重复的值。
  • "$push":expr
    不管expr是什么值,都将它添加到数组中。

作者:似水之星
链接:https://www.jianshu.com/p/185d699c914a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

mongo分组查询(转)的更多相关文章

  1. Mongo 应用查询

    官网操作手册,基本就够用 https://docs.mongodb.com/manual/ 下面是个分组查询的例子,项目中用到然后查了个例子,自己理解了下,觉得很好很强大. https://blog. ...

  2. MySQL时间分组查询

    表TESTER 字段:id -- INT    date  -- TIMESTAMP 1.如何按年.月.日分组查询? select DATE_FORMAT(date,'%Y-%m-%d') time, ...

  3. 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询

    前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法. 语法回顾 SELECT [ALL|DISTINCT] <目标列表达式>[ ...

  4. Hibernate 分组查询 子查询 原生SQL

    分组查询: 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  5. mysql 分组查询问题 group_concat

    这几天在做购物车的时候.购物车内的商品为一个商品占一行,结果再从数据库读出的时候,没有分组,而是循环所有的内容出来,然后进行判断.如果一样的话就把他保存到一个变量中.但是自己逻辑没搞清楚.一直出bug ...

  6. mongodb 分组查询

    数据的保存 include_once 'mDB.class.php'; $m=new mDB(); $m->setDB('mydb'); // $m->save('stu',['dept' ...

  7. 08章 分组查询、子查询、原生SQL

    一.分组查询 使用group by关键字对数据分组,使用having关键字对分组数据设定约束条件,从而完成对数据分组和统计 1.1 聚合函数:常被用来实现数据统计功能 ① count() 统计记录条数 ...

  8. Mongodb for C# 分组查询

    #region 排序获取集合 static List<BsonDocument> GetPagerWithGroup(string connectionString, string dat ...

  9. Mongo简单查询总结

    mongo 简单查询db.ansheng.findOne()//返回第一条匹配到的数据db.ansheng.findOne({"aaaaa":4})db.ansheng.find( ...

随机推荐

  1. mysql5.6和5.7安装 centos

    mysql5.7安装 tar xf mysql--linux-glibc2.-x86_64.tar.gz mv mysql--linux-glibc2.-x86_64 /opt/mysql yum i ...

  2. \pset 、\x命令

    \pset命令用于设置输出的格式 \pset border 0:表示输出内容无边框.示例如下: \pset border 1:表示边框只在内部.示例如下: \pset border 2:表示内外都有边 ...

  3. DBA-io

  4. 二.通过jenkins对系统的监控(1)

    说明:通过jenkins定时请求系统,判断系统是否挂了. 注:windows环境 1.新建一个自由风格的项目. 2.构建触发器选择定时构建. 3.执行windows批处理命令 4.构建后操作,发邮件 ...

  5. msf generate exec payload

    daniel@daniel-mint ~/msf/metasploit-framework $ ruby msfpayload windows/exec CMD=calc.exe N WARNING: ...

  6. JavaFX教程

    JavaFX是Java的下一代图形用户界面工具包.JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序. JavaFX允许开发人员快速构建丰富的跨平台应用程序.JavaFX通 ...

  7. matlab中struct创建方法

    MATLAB中struct创建方法可分为:直接创建法和struct()函数创建法 (1)直接创建: 直接定义字段,像使用一般matlab变量一样,不需要事先声明,支持动态扩充.下面创建一个Studen ...

  8. php被遗忘的参数 pcntl

    phpinfo () CTRL+ F–enable-pcntl今天居然可以用到.哈 狗屎运. 来自t00ls < ?php /******************************* *查 ...

  9. MVC中的自定义标签分页控件,仅供大家学习!!

    public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, ...

  10. postgresql 取出分组中最大的几条数据

    WITH Name AS ( SELECT * FROM ( SELECT xzqdm, , ) xzdm, COUNT (*) sl FROM sddltb_qc WHERE xzqdm ') GR ...