mongodb聚合查询实现功能,统计某一个单位下短信发送总条数、成功条数、失败条数 其中短信发送成功失败状态值字段为sendStatus

时间: 2023-04-10 17:02:24 浏览: 78
可以使用 MongoDB 的聚合管道来实现这个功能。首先,需要使用 $match 操作符来筛选出特定单位的短信记录,然后使用 $group 操作符来对这些记录进行分组统计。具体的聚合管道如下: ``` db.sms.aggregate([ { $match: { unit: "某一个单位" } }, { $group: { _id: null, total: { $sum: 1 }, success: { $sum: { $cond: { if: { $eq: [ "$sendStatus", "success" ] }, then: 1, else: 0 } } }, failure: { $sum: { $cond: { if: { $eq: [ "$sendStatus", "failure" ] }, then: 1, else: 0 } } } } } ]) ``` 这个聚合管道会将符合条件的短信记录按照 sendStatus 字段进行分组统计,计算出总条数、成功条数和失败条数。其中,$cond 操作符用于根据条件进行计数,$eq 操作符用于比较字段值是否相等。
相关问题

mongodb聚合查询实现功能,统计多个组织机构下短信发送条数,组织机构字段为sendOrgCode,要根据短信发送状态 sendStatus 统计出成功条数、失败条数、总条数

可以使用 MongoDB 的聚合管道来实现这个功能。首先,使用 $match 操作符筛选出所有组织机构为指定值的短信记录,然后使用 $group 操作符对这些记录进行分组,统计成功条数、失败条数和总条数。具体实现代码如下: db.sms.aggregate([ { $match: { sendOrgCode: "组织机构代码" } }, { $group: { _id: "$sendStatus", successCount: { $sum: { $cond: { if: { $eq: [ "$sendStatus", "成功" ] }, then: 1, else: 0 } } }, failCount: { $sum: { $cond: { if: { $eq: [ "$sendStatus", "失败" ] }, then: 1, else: 0 } } }, totalCount: { $sum: 1 } } } ]); 其中,$cond 操作符用于根据 sendStatus 的值来判断是否计入成功条数或失败条数。如果 sendStatus 的值为成功,则计入成功条数;如果 sendStatus 的值为失败,则计入失败条数;否则不计入任何条数。

mongodb当前表字段 sendOrgCode、sendStatus、mobile, 要求根据sendStatus统计出所有sendOrgCode的发送条数、其中包含 成功条数、失败条数、总条数

可以使用 MongoDB 的聚合框架来实现这个需求。具体的聚合管道如下: ``` db.collection.aggregate([ // 匹配 sendStatus 为成功或失败的文档 { $match: { sendStatus: { $in: ["成功", "失败"] } } }, // 按 sendOrgCode 和 sendStatus 分组,统计条数 { $group: { _id: { sendOrgCode: "$sendOrgCode", sendStatus: "$sendStatus" }, count: { $sum: 1 } } }, // 将结果按 sendOrgCode 分组,生成统计报表 { $group: { _id: "$_id.sendOrgCode", totalCount: { $sum: "$count" }, successCount: { $sum: { $cond: [ { $eq: [ "$_id.sendStatus", "成功" ] }, "$count", 0 ] } }, failCount: { $sum: { $cond: [ { $eq: [ "$_id.sendStatus", "失败" ] }, "$count", 0 ] } } } } ]) ``` 这个聚合管道会先匹配 sendStatus 为成功或失败的文档,然后按 sendOrgCode 和 sendStatus 分组,统计条数。最后再按 sendOrgCode 分组,生成统计报表,包括总条数、成功条数和失败条数。

相关推荐

最新推荐

MongoDB聚合分组取第一条记录的案例与实现方法

前言 今天开发同学向我们提...二是,实现这个功能MongoDB聚合感觉有些复杂,聚合要走好多步。 数据记录格式如下: 记录1 { "_id" : ObjectId("5c1e23eaa66bf62c0c390afb"), "_class" : "C1", "resourceUrl" : "/st

JAVA mongodb 聚合几种查询方式详解

主要介绍了JAVA mongodb 聚合几种查询方式详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1亿条记录的MongoDB数据库随机查询性能测试

mongdb性能压力测试,随机查询,数据量1亿条记录 操作系统centos6.4×64位 从测试结果看,当mongodb将数据全部载入到内存后,查询速度根据文档的大小,性能瓶颈通常会是在网络流量和CPU的处理性能(该次测试中当...

Mongodb聚合函数count、distinct、group如何实现数据聚合操作

Mongodb中自带的基本聚合函数有三种:count、distinct和group。下面我们分别来讲述一下这三个基本聚合函数及如何实现数据聚合操作,感兴趣的朋友一起学习吧

浅谈java实现mongoDB的多条件查询

主要介绍了java实现mongoDB的多条件查询,具有一定参考价值,需要的朋友可以参考下。

stc12c5a60s2 例程

stc12c5a60s2 单片机的所有功能的实例,包括SPI、AD、串口、UCOS-II操作系统的应用。

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire

【迁移学习在车牌识别中的应用优势与局限】: 讨论迁移学习在车牌识别中的应用优势和局限

![【迁移学习在车牌识别中的应用优势与局限】: 讨论迁移学习在车牌识别中的应用优势和局限](https://img-blog.csdnimg.cn/direct/916e743fde554bcaaaf13800d2f0ac25.png) # 1. 介绍迁移学习在车牌识别中的背景 在当今人工智能技术迅速发展的时代,迁移学习作为一种强大的技术手段,在车牌识别领域展现出了巨大的潜力和优势。通过迁移学习,我们能够将在一个领域中学习到的知识和模型迁移到另一个相关领域,从而减少对大量标注数据的需求,提高模型训练效率,加快模型收敛速度。这种方法不仅能够增强模型的泛化能力,提升识别的准确率,还能有效应对数据

margin-top: 50%;

margin-top: 50%; 是一种CSS样式代码,用于设置元素的上边距(即与上方元素或父级元素之间的距离)为其父元素高度的50%。 这意味着元素的上边距将等于其父元素高度的50%。例如,如果父元素的高度为100px,则该元素的上边距将为50px。 请注意,这个值只在父元素具有明确的高度(非auto)时才有效。如果父元素的高度是auto,则无法确定元素的上边距。 希望这个解释对你有帮助!如果你还有其他问题,请随时提问。

Android通过全局变量传递数据

在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何地方都可以使用和访问 除非是Web服务器停止 Android中的全局对象非常类似于Java Web中的Application域 除非是Android应用程序清除内存 否则全局对象将一直可以访问 1 定义一个类继承Application public class MyApp extends Application 2 在AndroidMainfest xml中加入全局变量 android:name " MyApp" 3 在传数据类中获取全局变量Application对象并设置数据 myApp MyApp getApplication ; myApp setName "jack" ; 修改之后的名称 4 在收数据类中接收Application对象 myApp MyApp getApplication ;">在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何地方都可以使用和 [更多]