【发布时间】:2014-01-09 14:31:46
【问题描述】:
我有一个包含该结构的文档的集合
{
type: 'a',
date: '2014-01-04'
},
{
type: 'b',
date: '2014-01-04'
},
{
type: 'b',
date: '2014-01-04
},
{
type: 'c',
date: '2014-01-03'
},
{
type: 'a',
date: '2014-01-03'
}
我想按日期和类型汇总数据(按日期分组并按类型计数):
{
date: '2014-01-04': {
'a': 1,
'b': 2
},
date: '2014-01'03': {
'a': 1,
'c': 1
}
}
我有聚合函数,像这样
db.items.aggregate([
{
$match: { user: user },
},
{
$group: { _id: {date: '$date'}, count: {$sum: 1}, services: {$push: '$type'}}
}
], function (err, results) {
但是这样做我仍然需要通过服务reduce 结果。
这可以通过一个聚合查询来完成吗?
【问题讨论】:
标签: node.js mongodb aggregation-framework