mongoDB 统计去重后的count,用$group实现

 db.collection.aggregate([{$group: {_id: '$myData'}},{$count: 'myCount'}], {maxTimeMS: 60000, // aggregate 超时时间,数据量大时需设置大些allowDiskUse: true, // 数据量大时需启用})

NodeJS 版完整代码:

/*
在myDb.myCollection中存有以下数据:
[{_id: 1, myData: 'a'},{_id: 2, myData: 'b'},{_id: 3, myData: 'c'},{_id: 4, myData: 'b'},{_id: 5, myData: 'a'},
]
统计 myData 去重后的数据数量
getDistinctCount() // return 3;          myData ['a', 'b', 'c']
*/
const MongoClient = require('mongodb').MongoClient;const getCollection = async () => {const url = 'mongodb://localhost:27017';const DB_NAME = 'myDb';const COLLECTION_NAME = 'myCollection';const client = await MongoClient.connect(url);const db = client.db(DB_NAME);const collection = db.collection(COLLECTION_NAME);return collection;
}const getDistinctCount = async () => {const collection = await getCollection();const [res = {}] = await collection.aggregate([{$group: {_id: '$myData'}},{$count: 'myCount'}], {maxTimeMS: 60000, // aggregate 超时时间,数据量大时需设置大些allowDiskUse: true, // 数据量大时需启用, requires mongodb 2.6 >}).toArray();return res.myCount;
}

mongoDB 去重统计, group实现版相关推荐

  1. es统计有多少个分组_es多字段分组去重统计

    < es多字段分组去重统计 oracle中sql: select a1 ,b1 from dual group by a1 ,b1 或 select DISTINCT a1 ,b1 from d ...

  2. MongoDB 去重(distinct)查询后求总数(count)

    在使用MonoDB 做报表汇总经常的有去重统计总数的需求,在此总结一下实现方式: 1, 直接使用distinct 语句查询, 这种查询会将所有查询出来的数据返回给用户, 然后对查询出来的结果集求总数( ...

  3. MongoDB 分组统计

    [摘要] MongoDB 在进行分组统计时如果面对一些比较复杂的计算情况,往往会遇到 shell 脚本过于复杂的问题.而集算器 SPL 语言,则因其有丰富的函数库及易用性恰好能弥补 Mongo 这方面 ...

  4. hive通过grouping sets多维度组合去重统计避免使用distinct

    在hive中,如果遇到多维度组合统计,并且要进行去重统计,例如统计不同维度组合的访问用户数,比如统计运营商.手机品牌.网络类型的用户数,怎样避免不用ditinct(因为distinct效率低),并且g ...

  5. 三种EXCEL去重统计方法

    数据去重统计是常用的一个功能,如果你还没有做过数据去重统计,就说明你离数据分析还很远. 好了,开始上干货. 方法一:先去重,再统计 先使用"删除重复项"功能按要统计的字段去重,如下 ...

  6. Oracle之字符串去重统计

    需求:listagg去重,字符串去重,去重统计 select listagg(t.city, ',') within group(order by t.city),regexp_replace((li ...

  7. 常用工具说明--mongodb、mysql解压版、IDEA配置maven

    Mongodb的安装.配置 1.去官网下载mongodb安装包,mongodb官网.点击右上角的 Download,下载对应的msi安装包 2.安装程序,选择 Custom,自定义安装路径,比如安装在 ...

  8. 在线文本去重统计工具

    在线文本去重统计工具 在线文本去重统计工具 本工具支持对以回车换行分隔的字符串进行数据项重复检查和去重操作,可以分析重复出现2次及以上的数据项,并且整理一份没有重复数据项的数据列表,数据纯客户端实时计 ...

  9. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(2)去重统计排序

    去年提前批我投了京东.字节和百度,一面,二面都被问到了awk,如果你会,并且还很熟悉,那肯定算是一个加分项了!好感度up up up! 基本原理本篇不再赘述.请阅读: 总结了200篇面经中的awk面试 ...

最新文章

  1. arm32 linux 内存分布,gcc代码反汇编查看内存分布[2]: arm-linux-gcc
  2. dom解析和生成XML文件
  3. tomcat安装部署
  4. sql优化之:数据库索引创建原则,or/in/union与索引优化,聚集索引/非聚集索引/联合索引/索引覆盖,MySQL冗余数据的三种方案,MySQL双主一致性架构优化(来源:架构师之路)
  5. TabActivity中的Tab标签详细设置
  6. (没解决的问题)c++关于 while(cin >> )之后无法恢复cin流的问题,哪位知道怎么恢复告知下,不胜感激!!!
  7. Cloud for Customer手机应用的deviceready事件是何时何处被抛出的
  8. React中的唯一标识key(用index VS id)和key的选择
  9. ping和telnet的区别
  10. 【Flink】Flink 源码之OperatorChain
  11. es5.4.0-CentOS-6.5-x86_64安装文档
  12. win7系统下,磁盘之间合并
  13. mysql5.7.23安装详细过程
  14. spring5.0学习笔记8
  15. 软件测试用例关键要素,软件测试用例的设计
  16. python 3d游戏编程入门_用python写游戏 - 从入门到精通16
  17. 文件无法复制到c盘的解决办法
  18. html5移动页面自适应手机屏幕大小,移动页面自适应手机屏幕的方法
  19. 初学者有关Hadoop版本选择的考虑
  20. 02 SpringBoot入门程序剖析之各种稀奇古怪的starter

热门文章

  1. 极速office(Word)怎么快速插入空白页
  2. 堆排序的java实现_堆排序(java实现)
  3. QQ消息记录总是卡在消息记录加载中页面解决方法
  4. 货运服务网络设计:经典文献阅读笔记(1)
  5. 全球港航人工智能/港航人工智能领军者中集飞瞳,多式联运智能化铁路货运智能化方案,全自动化集装箱识别+数字化海运铁路运输集装箱管理
  6. Android大厂面试题锦集(BAT TMD JD 小米)
  7. HTML六宫格转盘抽奖页面设计,选项区块为自定义文字
  8. Gradle sync failed (3 s 402 ms) - Android Studio问题解决方法
  9. ApacheDoris入门操作和BE启动失败问题解决
  10. 高仿微信新消息提示音功能