mongodb聚合中$group的联合主键写法

来源:互联网 发布:淘宝收藏店铺失败 编辑:程序博客网 时间:2024/04/28 14:55

环境

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 0
原创粉丝点击