Mgo统计查询及显示附加字段
MongoDB统计查询
$group基本操作:
- _id:分组字段的集合
- $sum:使用$+字段名为求和(字符串忽略);
- 1为每组的条数;
- 可以在$sum中多个字段进行运算,得出成为新字段的结果
- $addToSet:将分组内的某个字段加入一个集合中,无重复值,$push会重复
- $unwind:用于拆分数组,当addToSet后是一个集合,为了更直观显示可用此拆分
db.table_a.aggregate([{$group:{_id:{player_id:"$player_id", channel:"$channel"},count : {"$sum": 1},amount : {"$sum": "$amount"},success: {"$sum": "$success"},fail : {"$sum": "$fail"},player_id: {"$addToSet": "$player_id"},channel : {"$addToSet": "$channel"}},{$unwind:"$player_id"},{$unwind:"$channel"}
])
Mgo操作
在golang中求和之后想在每一列中增加某些字段的值,所以要用上$push,$addToSet。但是用上这两个关键字后所得到的数据是个是个切片。为了更简单的与proto结构关联起来,所以要加上$unwind来拆分。注:我此时所要的附加字段是分组的字段,因此不会有重复求和的结果。
//go
findBson := bson.M{}
groupBson := bson.M{"_id": bson.M{"player_id": "$player_id", "channel": "$channel"},"count": bson.M{"$sum": 1},"amount": bson.M{"$sum": "$amount"},"success": bson.M{"$sum": "$success"},"fail": bson.M{"$sum": "$fail"},"player_id": bson.M{"$addToSet": "$player_id"},"channel": bson.M{"$addToSet": "$channel"},
}
//查询聚合数据条件
m := []bson.M{{"$match": findBson},{"$group": groupBson},{"$unwind": "$PlayerId"},{"$unwind": "$Channel"},
}var data []*XXX // proto结构体
query = col.Pipe(m)
query.All(&data)
//proto//用户注单统计数据
message XXX{optional int64 player_id= 1;optional string channel = 2;optional int64 amount =3;optional int64 success= 4;optional int64 fail=5;
}
Mgo统计查询及显示附加字段相关推荐
- 以“学生”、“成绩”表为数据源,使用 SQL 视图创建一个名为“学生不及格课程数”统计查询,显示字段为:学号、姓名、不及格门数。
以"学生"."成绩"表为数据源,使用 SQL 视图创建一个名为"学生不 及格课程数"统计查询,显示字段为:学号.姓名.不及格门数.
- 添加页面不显示ks001这条字段,修改显示,查询都显示该字段
重点对比1 import groovy.sql.Sql def sql=null if(mypara.czzt0){ mypara.damapvalue.cCode=mypara.hqdacode() ...
- mybatis 显示自定义多个统计_myBatis查询结果显示多表内的字段——通过resultMap映射自定义结果...
问:查询完成后,结果列只能展示单表内的字段,比如用户表表中只记录角色编号,没有角色名称.结果列要如何展示在另一个表内的字段--角色名称呢? 答:通过resultMap映射自定义结果显示该字段. 1.r ...
- oracle查询数据令某字段显示固定值
oracle查询数据令某字段显示固定值 select t.tname 表名称, '固定值' as C from tab t; 注意: C字段 必须是tab表中没有的字段 mysql查询数据令某字段显示 ...
- oracle+统计表的字段,统计系统中表的个数与查询所有表的字段信息-Oracle
统计系统中表的个数与查询所有表的字段信息 –统计系统中表的个数: –表描述字段: –需要字段:Name.Code.Commente select lower(a.TABLE_NAME) || '-' ...
- sql语句查询数据库返回结果转换显示自定义字段
在开发中经常遇到在数据中用单字符保存数据对应简单信息,比如性别.状态.与否等.如果要求在绑定数据源并显示对应字段,比如性别:1表示男,0表示女:状态:1表示有效,0表示失效等等.简单一句sql语句搞定 ...
- mysql求和 子查询_MYSQL 查询方法 统计查询 链接查询 子查询
mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据 select Code,Name from Info --查指定列的数据 select Code ...
- SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询
实验目标: 1.掌握指定列或全部列查询 2.掌握按条件查询 3.掌握对查询结果排序 4.掌握使用聚集函数的查询 5.掌握分组统计查询 一.请完成书中实验7.1,并完成以下问题. 1.查询所有学生的姓名 ...
- apex 查询_在 Apex 中使用合并统计查询
SOQL 中的合并统计查询 在 SOQL 中,我们可以使用一系列函数来进行合并统计查询.它们的功能和标准 SQL 中的 SUM(),COUNT() 等函数类似. Apex 中使用合并统计查询 在 Ap ...
最新文章
- AI专家警告:GPT-3令人赞叹,但缺乏透明度
- 费曼:所有的科学知识都是不确定的
- Spring 是如何解决并发访问的线程安全性问题的
- html让下拉条消失,CSS 实现隐藏滚动条同时又可以滚动
- IOS上的 Audio Memos SE 如何分享和传输录音到电脑?
- spring 面试题
- 水晶报表各版本打包模块及相关文档
- 5.SpringMVC
- 使用Def文件导出dll
- CCNA笔记之第十四节:RIP协议(1)
- python利器-[python] bluepy 一款python封装的BLE利器
- [转载] python+opencv4读取图像
- 产品运营必备的素质有哪些
- Loadrunner11 下载、安装与破解
- 百度前端技术学院---vue动态数据绑定-3
- VUE调用高德地图之热力图
- 计算机求职信英语作文模板,英语自荐信范文(计算机)
- idea安装findBugs 报idea运行项目报错Cannot run program
- Apache Kylin Buid Cube详细流程
- 我去,神操作!虚拟机Ubuntu18.04居然可以安装NVIDIA + 附带安装源码与命令