本文主要是介绍mongodb聚合中$group的联合主键写法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境
mongodb 2.6
window7
RoboMongodb
需求
今天写联合主键了时,发现有两种写法,特此记录下:
写法一、用数组
db.gg_report_down_read.aggregate([
{
$match:
{
"status" : 1 ,
"account_name" : "F00015170" ,
"org_name" : { "$regex" : "熙玥投资"}}
},
{
$group:
{
//这里对_id,使用数组
"_id" : [ "$account_name" , "$org_name"] ,
"down_sum" : { "$sum" : "$down_sum"} ,
"read_sum" : { "$sum" : "$read_sum"}}
}
])
结果是:
{"result" : [ {"_id" : [ "$account_name", "$org_name"],"down_sum" : 229,"read_sum" : 3508}],"ok" : 1
}
写法二、键值对
db.gg_report_down_read.aggregate([
{
$match:
{
"status" : 1 ,
"account_name" : "F00015170" ,
"org_name" : { "$regex" : "熙玥投资"}}
},
{
$group:
{
"_id" : { name:"$account_name" , orgName:"$org_name"} ,
"down_sum" : { "$sum" : "$down_sum"} ,
"read_sum" : { "$sum" : "$read_sum"}
}
}
])
结果:
/* 0 */
{"result" : [ {"_id" : {"name" : "F00015170","orgName" : "熙玥投资"},"down_sum" : 229,"read_sum" : 3508}],"ok" : 1
}
总结
可以看出,它们返回的结果是略有差距,
使用键值对的方法:联合主键,是能可以显示相应的值的。
使用数组的话,联合主键是不会把值显示出来的
这篇关于mongodb聚合中$group的联合主键写法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!