mongodb聚合查询

在SPRING DATA MONGODB中使用聚合统计查询 在SQL语句中如要做统计一般是这种方式: SELECT ..,SUM(1) FROM .. WHERE .. GROUP BY .. HAVING .. SORT .. 在MONGODB中的架构图: 在SPRING DATA MONGODB中是这样写的: public class VideoRepositoryImpl implements VideoRepositor 阅读详情

有个需求是要统计mongodb的数据,按日期查询

如下图,按月查询

db.getCollection('ch_diet').aggregate([
    {
        "$match": {
            "CH_create_time": {"$gt": ISODate("2018-12-31T16:00:00.000Z"), "$lt": ISODate("2019-12-31T16:00:00.000Z")},
            "CH_comment": {"$exists": true},
            "CH_comment.CH_description": {$ne: ""}
        }
    },
    {
        "$project": {
           // 处理时区,因为mongo存储的是UTC时间,加8时区
           day: {$dayOfMonth: {date: "$CH_m_date", timezone: "+08"}},
        }
    },
    {
        "$group": {
             _id: "$day",
            sum: {$sum: 1},

        }
    },
    {
        "$sort": {
                "_id": 1
            }
        }
])

还有这种情况,统计出总数来,还要统计人数多少,就是要根据人的id去重,需要group两次

参考了这篇文章:https://blog.youkuaiyun.com/lff0305/article/details/50034735

db.getCollection('ch_glucose').aggregate([
    {
        "$match": {
            "CH_m_date": {"$gt": ISODate("2020-01-31T16:00:00.000Z"), "$lt": ISODate("2020-02-10T16:00:00.000Z")}
        }
    },
    {
        "$group": {_id: {"date": {$dayOfMonth: {date: "$CH_m_date", timezone: "+08"}}, "user":"$CH_user_id"}}
    },
   {
       "$group": {_id: {"date": "$_id.date"}, count: {$sum: 1}}
    },
    {
        "$sort": {
                "_id": 1
            }
        }
])

 

MongoDB学习【三】MongoDB高级聚合查询详解 MongoDB高级聚合详解 阅读详情

相关推荐

从配置文件加载顺序揭秘:为什么你的logback.xml读不到application.yml?

本文深入解析了Spring Boot中logback.xml无法读取application.yml配置的原因,揭示了Spring Boot配置加载机制与日志系统初始化的时序问题。通过对比logback.xml与logback-spring.xml的差异,提供了使用springProperty标签和系统属性传递等解决方案,帮助开发者有效解决日志配置问题。

weixin_29214335的博客 363

mongodb 日期分组聚合_mongodb 聚合查询-按日期分组统计 和对应mongoTemplate写法

1.$match 定义查询条件db.collection.aggregate({"$match":{"merchno" : "1561985080187","createTime": {$lte:ISODate("2019-07-03T15:59:59.000Z"),$gte: ISODate("2019-07-02T16:00:00.000Z")}}})对应的mongoTemplate 写法Ag...

weixin_34617955的博客 2763

基于车辆运动学的规划算法 - Hybrid A*/ State Lattice Planning (前置知识:自行车模型、Dubins、Reeds Shepp、多项式曲线、螺旋曲线)

本文将按顺序讲解基于车辆运动学的规划算法,以及需要的前置知识:自行车模型、Dubins和Reeds Shepp曲线、多项式曲线和螺旋曲线

BigDavid123的博客 4857

mongodb分时间段 统计

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34413802的博客 1201

Gazebo仿真平台模型搭建与修改

ROS里踩过的坑(一)Gazebo仿真平台模型搭建与修改文件讲解Models 文件World文件Launch文件模型编辑可视化编辑配置文件编辑模型展示如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出...

Redglass的博客 1万+

【自由谈】城域网IPv6过渡技术——MAP技术(1)

在IPv4向IPv6网络演进的浪潮中,存在着两对主要矛盾的较量,一对是IPv4地址短缺和IPv4业务蓬勃发展之间的矛盾,另一对是IPv6海量的地址空间和IPv6应用的匮乏之间的矛盾。同时两对矛盾又互相制约,IPv4地址共享机制似乎又减缓了IPv6产业链的发展,IPv6产业链的不断发展似乎又在考验着IPv4地址共享机制的部署规模。MAP成为目前兼顾IPv4和IPv6的4voer6场景中最为关注的技术。

韩立金自由谈 3020

mongodb聚合利用日期分组。

$dayOfYear: 返回该日期是这一年的第几天。(全年366天) $dayOfMonth: 返回该日期是这一个月的第几天。(1到31) $dayOfWeek: 返回的是这个周的星期几。(1:星期日,7:星期六) $year: 返回该日期的年份部分 $month: 返回该日期的月份部分(between 1 and 12.) $week: 返回该日期是所在年的第几个星期(between 0 and

山鬼谣的专栏 1万+

电动汽车BMS核心技术:AS8510高精度传感器解析

电池管理系统(BMS)是电动汽车的核心组件,其精度直接影响电池安全与续航表现。通过Σ-Δ ADC和斩波稳定等技术,现代BMS传感器可实现±0.5%的电流测量精度,满足汽车级AEC-Q100和ISO 26262标准。AS8510作为行业标杆芯片,采用双通道16位ADC架构,在-40°C至+150°C范围内保持稳定性能,特别适合新能源汽车的严苛环境。这类高精度传感器技术不仅解决了传统BMS的温漂难题,还为智能电池诊断、无线BMS等创新应用奠定了基础,是推动电动汽车技术进步的关键要素。

weixin_30781775的博客 533

MongoDB聚合运算符:$dayOfYear

`$dayOfYear`返回日期在当年的那一天,值的范围1~366。

superatom01的博客 717

【Autoware】2小时安装Autoware1.13(保姆级教程)

Autoware是一款“一体化”开源自动驾驶软件,能实现感知、决策、控制等功能,通过在Ubuntu中搭建Autoware开发环境和案例的运行,使大家对自动驾驶技术的实现有一个更清晰的认识。

DevFrank的博客 1万+

从后端角度浅谈抗辐射设计----三模冗余(TMR)

三模冗余设计(TMR),是最常用的一种容错技术,三个模块采取相同的操作,以多数相同的输出作为表决系统的正确输出,即3取2,因为三个模块是相互独立的,而其中两个模块同时出错的概率是极小的,因此便可保证系统输出的可信度。然而这个设计也会存在面积浪费,功耗的增加,而且由于是冗余的设计,在后续进行综合或者pr的时候会被工具优化,因此需要对模块进行don’t touch设置;通过增值表得到,逻辑关系表达式为:Q=(Q1&Q2)|(Q1&Q3)|(Q2&Q3),通过工艺库的stdcell进行搭建,得到如下电路。

芯冰乐 325

学习mongodb数据库的sql语句,这一篇就够了!

createdAt", ISODate(“2022-01-01”) ] }, then: true, else: false } } } 表示只保留 platform 和 version 两个字段,同时计算出 isNew 字段,如果文档的 createdAt 字段大于等于 2022 年 1 月 1 日,则 isNew 为 true,否则为 false。可以根据某个字段的值在另外一个集合中查找匹。当然,这只是每个符号内部常用的一些符号,MongoDB提供了非常多的查询符号和操作符,具体使用根据实际情况而定。

z1731822242的博客 3458

使用 IMDb API 获取电影评分和评论的 Python 爬虫

电影是人们娱乐生活中的重要组成部分,随着电影产业的快速发展,观众对电影的评价也越来越多样化。IMDb(互联网电影数据库)作为全球最大的电影评分和评论平台之一,收录了成千上万部电影、电视节目及其相关数据。它提供了一个强大的 API 接口,允许开发者访问电影的评分、评论、演员信息等数据。本文将带你一步一步实现一个 Python 爬虫,使用 IMDb API 获取电影的评分和评论。我们将通过这个爬虫来分析一些热门电影的观众反馈,并可视化分析结果。

2201_76125261的博客 1054

MongoDB聚合查询总结

点击名片关注阿尘blog,一起学习,一起成长本文主要整理MongoDB聚合查询相关内容1、MongoDB聚合查询简介1.1 聚合查询概述聚合查询定义聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。聚合是MongoDB的高级查询语言,它允许我们通过转化合并由多个文档的数据来生成新的在单个文...

m0_72418211的博客 748

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MongoDB聚合查询

MongoDB聚合查询

SongD1114的博客 2824

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MongoDB 聚合查询详解

聚合查询是指对数据进行汇总、分析和转换的过程。在 MongoDB 中,聚合查询可以通过多种方式实现,最常用的是使用aggregate方法。聚合查询允许用户对集合中的文档进行复杂的计算和转换,返回处理后的结果。MongoDB 的聚合查询是一个强大的工具,能够帮助开发者高效地处理和分析数据。通过使用不同的聚合操作符,您可以实现复杂的数据分析和报告功能。

Hesitate_的博客 1039

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【详细教程】一文参透MongoDB聚合查询

聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。

博学谷狂野架构师的博客 4791

mongodb聚合查询优化_Mongodb聚合慢查询优化

最近leader让我针对线上一个查询进行优化。举一个相似的例子,以如下的书籍信息文档为例,需要注意的是一本书可能会有多个作者。业务上的需求是获取指定的50个作者最新出版的的书籍。在优化前,原先的代码逻辑是每次访问数据库获取一个作者参与的图书,按照时间倒序排序,分页取第一条信息。那么完成这个需求需要访问50次mongodb,生产环境这个业务总共耗时5s。leader让我优化到1S内。这个查询的瓶颈主...

weixin_40007804的博客 760

『MongoDB』MongoDB聚合框架深度解析及丰富的聚合查询案例

📣读完这篇文章里你能收获到:MongoDB聚合框架的概念知识,MongoDB的复杂聚合查询,MQL与SQL的对比,MQL聚合查询转换成相应语言的代码,MongoDB的聚合查询是比较复杂,不过别急着自我劝退,记得看到最后有彩蛋...

老陈聊架构 1984

mongodb 聚合查询 $sum

##mongodb 聚合查询 $sum 1.字段的类型必须相同 比如 ![数据字段类型](https://img-blog.csdnimg.cn/2020091815523675.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTE1Njk1Mw==,size_16,color_FFFFFF,t_70#pic_cent

疾风行的博客 3413

mongodb查询和聚合函数查询

查询 格式:db.集合名.find() 格式化查询:db.集合名.find().pretty() db.集合名.findone()只查找一条记录 比较运算符 大于 $gt 小于 $lt 大于等于 $gte 小于等于 $lte 等于 : 不等于 $ne 条件查询:db.集合名.find({键:“值”}) 例:db.student.find({name:“张三”,age:22}) 多条件查询 条件1 and 条件2 例:db.student.find({age:{gte:20,gte:

王大兴的王兴的博客 1931

MongoDB之聚合查询

MongoDB之聚合查询 MongoDB普通查询播客:https://blog.youkuaiyun.com/sinat_32366329/article/details/81784562 聚合框架是MongoDB的高级查询语言,允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。通俗一点来说,可以把MongoDB的聚合查询等价于SQL的GROUP BY语句。 聚合操作过程可以理...

一叶知春秋 8741
上一篇: mac启动ssh服务
下一篇: mysql按日期分组统计
david___
博客等级 码龄15年 13粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值