【发布时间】:2014-01-17 18:12:12
【问题描述】:
如果我有以下players 收藏:
> db.players.findOne()
{
_id: 1,
goals: ['goal_a', 'goal_b', 'goal_c'],
matches: ['match_a', 'match_b', 'match_c', 'match_d']
}
是否可以在 MongoDB 中编写一个查询,该查询将返回每个 Array 的计数,例如对于_id: 1:
{
_id: 1, num_goals: 3, num_matches: 4
}
到目前为止,我已经能够使用 aggregation pipeline 获得 一个 Arrays 的计数:
> db.players.aggregate(
{ $match: { '_id': 1 } },
{ $unwind: '$goals' },
{ $group: { _id:'player', num_goals: {$sum:1} } }
)
是否可以将此概念扩展为在同一查询中计算多个Arrays?
谢谢:-)
【问题讨论】:
标签: mongodb