大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这期内容当中小编将会给大家带来有关MongoDB中有哪些聚合命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的雷州网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!1.聚合管道法:
管道聚合方法可以理解为合计流水线法,就是把集合里若干含数值型的文档记录其键对应的值进行各种分类统计,有点类似于SQL语言里的group by。
语法如下:
db.collection.agrregate(
[$match:{
{$group:{
]
说明:
field1为分类字段;field2为含各种统计操作符的数值型字段,比如$sum, $avg, $min,$max等操作符
>use test
> db.test.insert(
... [{id:"001",amount:2,price:15.2,ok:true},
... {id:"001",amount:3,price:14.8,ok:true},
... {id:"002",amount:4,price:40,ok:true},
... {id:"002",amount:2,price:10,ok:true},
... {id:"003",amount:3,price:20.3,ok:true}
... ]
... )
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 5,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
> db.test.aggregate({ $match:{ok:true}})
{ "_id" : ObjectId("5b50388dff7043cec86841af"), "id" : "001", "amount" : 2, "price" : 15.2, "ok" : true }
{ "_id" : ObjectId("5b50388dff7043cec86841b0"), "id" : "001", "amount" : 3, "price" : 14.8, "ok" : true }
{ "_id" : ObjectId("5b50388dff7043cec86841b1"), "id" : "002", "amount" : 4, "price" : 40, "ok" : true }
{ "_id" : ObjectId("5b50388dff7043cec86841b2"), "id" : "002", "amount" : 2, "price" : 10, "ok" : true }
{ "_id" : ObjectId("5b50388dff7043cec86841b3"), "id" : "003", "amount" : 3, "price" : 20.3, "ok" : true }
> db.test.aggregate(
... {
... $group:{
... _id:'$id',
... total:{$sum:"$amount"}
... }
... })
{ "_id" : "003", "total" : 6 }
{ "_id" : "002", "total" : 12 }
{ "_id" : "001", "total" : 10 }
>
说明:_id:'$id',id为分类字段名,total为统计结果字段名,$sum为求和操作符号 ,$amount为求和字段。
2.map-reduce法:
> var chenfeng=db.test.mapReduce(
... function(){
... emit(this.id,this.amount)
... },
... function(key,values){
... return Array.sum(values)
... },
... {query:{ok:true},out:{replace:"result"}}
... )
> db[chenfeng.result].find()
{ "_id" : "001", "value" : 5 }
{ "_id" : "002", "value" : 6 }
{ "_id" : "003", "value" : 3 }
>
3.单一目标聚合法:
语法:
db.collection.count(query,options)
例如:
> db.test.distinct("id")
[ "001", "002", "003" ]
>
> db.test.find({ok:true}).count()
5
上述就是小编为大家分享的MongoDB中有哪些聚合命令了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道。