mongodb group 之后取汇总怎么写

一号男嘉宾 发布于 2017/09/01 15:06
阅读 84
收藏 0
"_id" : ObjectId("59a7d5a6d34bde08aa31fcc2"), 
"time_region" : ISODate("2017-08-31T09:25:00.000+0000"), 
"status_code" : NumberInt(206)

}
{

"_id" : ObjectId("59a7dff6d34bde08aa31fcc3"), 
"time_region" : ISODate("2017-08-31T09:25:00.000+0000"), 
"status_code" : NumberInt(206)

}
{

"_id" : ObjectId("59a7efb9d34bde07655afcdd"), 
"time_region" : ISODate("2017-08-31T09:25:00.000+0000"), 
"status_code" : NumberInt(200)

}
以上是我的数据,我希望按照time_region分组后再按照status_code分组,最终希望得到
[time_region=2017-08-31T09:25:00.000+0000, 206=2,200=1]或者得到[time_region=2017-08-31T09:25:00.000+0000, code=[{code=206,count=2},{code=200,count=1}]]这样的也行。有会的朋友帮忙给个例子参考下哇。

加载中
0
confused_man
confused_man
db.sales.aggregate(
   [
      {
        $group : {
           _id : {time_region: "$time_region", code: "$status_code"},
           count: { $sum: 1 }
        }
      }
   ]
)
一号男嘉宾
一号男嘉宾
你看下回复的,返回的结果还是不对哇。
一号男嘉宾
一号男嘉宾
我试下
0
一号男嘉宾
一号男嘉宾

    "_id" : {

        "time_region" : ISODate("2017-09-01T10:10:00.000+0000"), 

        "code" : "200"

    }, 

    "count" : 1.0

}

    "_id" : {

        "time_region" : ISODate("2017-09-01T10:10:00.000+0000"), 

        "code" : "206"

    }, 

    "count" : 1.0

}

显示的结果是这个,还是不对。y因为显示了两条记录,因为他们时间是一样的,应该显示一条记录才对。

返回顶部
顶部