使用mongo聚合分组查询获取每一组的时间最大的一条数据

简介: 使用mongo聚合分组查询获取每一组的时间最大的一条数据

mongo聚合


使用mongo的.aggregate方法, 类似一个聚合流水线的一个过程, 可以理解为文档经过多次管道阶段最后生成的结果, 可以直接看mongo aggregate官方文档 的一张图

将整体文档经过多次管道最后生成想要的文档这个原理


官方也提供了很多 聚合管道运算符, 用到的朋友可以直接查询


讲一下我自己解决问题写的一条语句

db.getCollection('city').aggregate([
    {"$match": {"date": {"$lte":20190313}}}, 
    {"$sort": {"date": -1}},
    {"$group": {_id: "$city_id",     
        firstDate: { $first: "$$ROOT" }}
    }]
)

简单解释一下, 就是我需要求出按城市id聚合分组求日期小于 20190313的组内数据并按照日期进行倒序求第一条的所有数据, 过程就是

    1 先找出日期小于 20190313的所有文档;
    2 按照日期倒序进行排序
    3 按照city_id进行聚合并求出第一个文档的所有内容, 内容会放入 firstDate 里面


目录
相关文章
|
SQL NoSQL 关系型数据库
MongoDB复杂分组聚合查询1
MongoDB复杂分组聚合查询1
533 0
|
4月前
|
分布式计算 BI MaxCompute
SQL 能力问题之输出聚合的维度列的名称,如何解决
SQL 能力问题之输出聚合的维度列的名称,如何解决
|
5月前
|
SQL 安全 数据挖掘
Elasticsearch如何聚合查询多个统计值,如何嵌套聚合?并相互引用,统计索引中某一个字段的空值率?语法是怎么样的?
Elasticsearch聚合查询用于复杂数据分析,包括统计空值率。示例展示了如何计算字段`my_field`非空非零文档的百分比。查询分为三步:总文档数计数、符合条件文档数计数及计算百分比。聚合概念涵盖度量、桶和管道聚合。脚本在聚合中用于动态计算。常见聚合类型如`sum`、`avg`、`date_histogram`等。组合使用可实现多值统计、嵌套聚合和空值率计算。[阅读更多](https://zhangfeidezhu.com/?p=515)
297 0
Elasticsearch如何聚合查询多个统计值,如何嵌套聚合?并相互引用,统计索引中某一个字段的空值率?语法是怎么样的?
|
6月前
|
SQL 搜索推荐 数据库
8. 聚合查询
8. 聚合查询
|
SQL 数据库管理 索引
SQL基础——聚合与排序(下)
SQL基础——聚合与排序(下)
162 0
|
6月前
|
关系型数据库 MySQL 数据库
『 MySQL数据库 』聚合统计
『 MySQL数据库 』聚合统计
|
关系型数据库 MySQL
PgSQL——通过某字段聚合查询另一个字段的集合
PgSQL——通过某字段聚合查询另一个字段的集合
|
SQL NoSQL 关系型数据库
MongoDB复杂分组聚合查询2
MongoDB复杂分组聚合查询2
116 0
|
分布式计算 JavaScript 前端开发
MongoDB复杂分组聚合查询3
MongoDB复杂分组聚合查询3
132 0
|
关系型数据库 MySQL 数据挖掘
MySQL数据高阶处理技巧:掌握先排序后分组的智慧
在MySQL数据库的数据探索旅程中,排序和分组是不可或缺的工具。然而,当你面对大量数据、重复值等情况时,常规的处理方法可能显得不够灵活。本文将为你揭示一个精妙的技巧:如何在MySQL中先排序,后分组,从而获取每个类型的最新数据,助你轻松驾驭复杂的数据处理任务。
188 0