项目场景:

最近使用golang 来访问mongodb 出了点问题 github.com/qiniu/qmgo对于数据聚合踩了坑 官方的demo给的太少没有多分支的场景


问题描述:

网上对于golang 来调用mongodb 的文章少之又少几乎没有 下面是我反复试验规范的使用mongodb 聚合的规范代码
APP 中接收数据代码:

 matchStage := bson.D{{"$match", []bson.E{{"type_id", 9},{"timestamp", bson.D{{"$gte", 0}, {"$lte", msg.EndTimeStamp}}},},},}groupStage := bson.D{{"$group", bson.D{{"_id", "$type_id"},{"send_flux", bson.D{{"$avg", "$send_flux"}}},{"recv_flux", bson.D{{"$avg", "$recv_flux"}}},},},}var showsWithInfo []bson.M// aggregate ALL()err := cli.Aggregate(context.Background(), mongo.Pipeline{matchStage, groupStage}).All(&showsWithInfo)if err != nil {mqttlog.WriteInfoLog("%s", err)}length = len(showsWithInfo)for i := 0; i < length; i++ {fmt.Println(showsWithInfo[i])}

原因分析:

之前是个人对于qmgo框架 还有对mongodb的驱动,缺乏理解, mongodb的大括号匹配也着实坑,注意逗号的使用


解决方案:

按照上述标准代码来进行过滤最为合适 。

golang mongodb 聚合(Aggregate) github.com/qiniu/qmgo框架相关推荐

  1. MongoDB聚合aggregate操作集锦

    MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). 基本语法为:db.collection.agg ...

  2. MongoDB 聚合 aggregate 的 match 和 project 阶段样例

    研究一个 MongoDB 的 aggregate 的 match 和 project 的样例. 博客 博客地址:IT老兵驿站. 正文 前面的帖子有讲过,MongoDB 的 aggregate 是可以分 ...

  3. mongodb 日期分组聚合_mongoose聚合aggregate按日期分组计算

    简介 在MongoDB中,聚合(aggregate)主要用于进行处理数据,比如统计求和,求平均数等,并返回计算后的数据结果,这给我们带来了很多便捷之处,因为可以在读取数据的同时进行数据处理. 场景介绍 ...

  4. mongodb聚合查询-aggregate

    Mongodb-aggregate 在工作中经常遇到一些mongodb的聚合操作,和mysql对比起来,mongo存储的可以是复杂的类型,比如数组,字典等mysql不善于处理的文档型结构,但是mong ...

  5. MongoDB聚合(aggregate)常用操作及示例

    简介 MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果. 有点类似 SQL 语句中的 count(*). 常用操作 表达式 描述 $mat ...

  6. MongoDB 添加、查询(条件查询、排序、分页、返回指定字段)、修改、删除数据、聚合aggregate

    MongoDB内部支持JavaScript语法,使用SpiderMonkey作为内部的JavaScript解释器引擎. 1.常用命令 show databases:显示数据库列表 use:切换数据库 ...

  7. Mongodb数据 ,聚合 aggregate

    聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum().avg() 语法 db.集合名称.aggregate([{管道:{表达式}}]) 管道 管道在Unix和 ...

  8. mongoDB中聚合(aggregate)的具体使用

    mongoDB中聚合(aggregate)的具体使用 - 简书 最近在学习mongoDB的使用,本文来介绍一下其中aggregate的具体使用 先来看一个分组的例子,本例中$group是一个管道操作符 ...

  9. MongoDB 聚合操作

    MongoDB 聚合操作 在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce.Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多 ...

最新文章

  1. python3.6 messagebox_Python Tkinter GUI编程入门介绍
  2. SqlServer修改数据库文件及日志文件存放位置
  3. servlet+jdbc+javabean其实跟ssh差不多
  4. ASP.NET - MVC框架及搭建教程
  5. 基于jQuery/zepto的单页应用(SPA)搭建方案
  6. 在 xfire中使用 GZip来 压缩 传输量
  7. 家庭问题(信息学奥赛一本通-T1362)
  8. c++已知2点求中垂线_电力系统负荷预测-基本方法以及分析(2)
  9. 【WPF】设置DataGrid表头内容居中显示
  10. 火狐可以使用广告终结者_使用Jupyter从终结者终止的地方重新启动脚本
  11. 【python中级】 获取系统的局域网ip地址
  12. 三阶矩阵的lu分解详细步骤_矩阵的LU分解
  13. 安装语言包-英文(美国)
  14. PHP-用ThinkPHP和Bootstrap实现用户登录设计
  15. 【原创】BERT知识融合
  16. iptv增值业务--华为机顶盒视频播放代码
  17. Tensor多维slice切片操作
  18. 一年卖出1500万支的钟薛高,正在通过企业微信和顾客“社交”
  19. 从STM32F407到AT32F407(一)
  20. Matlab 在线版 —— 科研人员的福音!无需下载安装,可计算可作图

热门文章

  1. perl 获取匹配正则表达式字串
  2. 什么是IDC?IDC数据中心什么意思?
  3. 拉格朗日乘子法(Lagrange Multiplier)详解以及乘子lambda的意义
  4. Python的变量声明
  5. Linux:chmod -R 777 *含义
  6. utf8mb4_unicode_ci、utf8mb4_general_ci的区别总结
  7. 兔年伊始谈闲书:三体-乌合之众-百年孤独 和《猫城记》(随笔)
  8. 大数据学习路线图(2023完整版)适合收藏
  9. linux进阶之道 pdf,PDF
  10. java sqlserver 插入数据_java中怎样向SQLserver中插入数据