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
}

总结

可以看出,它们返回的结果是略有差距,
使用键值对的方法:联合主键,是能可以显示相应的值的。
使用数组的话,联合主键是不会把值显示出来的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山鬼谣me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值