博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于mongodb的aggregate
阅读量:5118 次
发布时间:2019-06-13

本文共 1467 字,大约阅读时间需要 4 分钟。

  最近学习nodejs和mongo,当学到appregate的时候感到很困惑,经过一小段时间的学习,大概总结下所学的东西。

 首先,先建立数据表

 use userinfo 

 db //userinfo

 db.createCollection('user');

 首先要插入一些数据: 

{

"_id" : ObjectId("588031590d6c56fe957a1d55"),
"name" : "lpc",
"title" : "html",
"price" : 300
}
{
"_id" : ObjectId("588031630d6c56fe957a1d56"),
"name" : "lpc",
"title" : "css",
"price" : 200
}
{
"_id" : ObjectId("5880316d0d6c56fe957a1d57"),
"name" : "yy",
"title" : "css",
"price" : 100
}

接下来查询我们的数据大概看一下:

db.user.find().pretty() //看到输出结果

 db.user.aggregate({$project:{username:'$name',userprice:'$price',usertitle:'$title'}},{$group:{_id:'$title',sum:{$sum:1},avg:{$avg:"$userprice"}}}).pretty()

大概解释下这句话的意思:

aggregate的意思是聚合。我们可以通过这个方法来计算数据的和 最大最小值 平均值等

$project:可以对结果集中的键重命名,控制键是否显示(只要不写进去就不会 显示)

$project:{username:'$name',userprice:'$price',usertitle:'$title'}:这句话的意思就是把数据表中的name字段的名称改变成‘username’

当只输入¥project这一命令时,得到的结果如下:

{ "_id" : ObjectId("588031590d6c56fe957a1d55"), "username" : "lpc", "usertitle" : "html", "userprice" : 300 }

{ "_id" : ObjectId("588031630d6c56fe957a1d56"), "username" : "lpc", "usertitle" : "css", "userprice" : 200 }
{ "_id" : ObjectId("5880316d0d6c56fe957a1d57"), "username" : "yy", "usertitle" : "css", "userprice" : 100 }

$group:分组,聚合,求和,平均数

_id(第一个感觉必须填_id,要不然会报错)

sum:{$sum:1} 根据_id求和,就是计算了title字段内容相同的和

avg:{$avg:"$userprice"} 根据userprice求平均值

输出的结果为:

{ "_id" : "css", "sum" : 2, "avg" : 150 }

{ "_id" : "html", "sum" : 1, "avg" : 300 }

转载于:https://www.cnblogs.com/lpc-js/p/6307265.html

你可能感兴趣的文章
【大话设计模式】——工厂模式家族
查看>>
二、创建Oracle数据库
查看>>
New Beginning
查看>>
每天一个Linux命令(4):mkdir命令
查看>>
Python 技巧
查看>>
2.3 linux C 进程与多线程入门--(3)信号
查看>>
Python进阶之路---1.1python简介
查看>>
计科院静态网页(作业七)
查看>>
lua--table
查看>>
linux 相关使用总结
查看>>
Function与Module的差异与应用场景
查看>>
安装了USB IF 测试工具, 大容量的U盘不能用了
查看>>
bzoj2653: middle
查看>>
linux命令将一个文件夹里面的所有文件复制到指定文件里
查看>>
mybatis属性详解
查看>>
2019年微服务5大趋势,你pick哪个?
查看>>
从细节处谈Android冷启动优化
查看>>
SparkSQL大数据实战:揭开Join的神秘面纱
查看>>
如何实现最佳的跨平台游戏体验?Unity成亮解密实时渲染
查看>>
pat09-散列1. Hashing (25)
查看>>