我在mongodb有两个收藏。
geoip是IP地址的查找表,在这里是唯一的。
我需要以下结果,以查找每个国家/地区的请求总数。换句话说,以下2列。
country和recordcount(来自基于ipaddress的请求集合)
由于这需要将2个单独的集合分组并将它们组合起来得到结果,所以我在这里不知所措。
答案 0 :(得分:3)
您需要使用$lookup阶段操作,该操作用于与其他集合执行连接并获取结果。然后将所选字段分组到所需的计数。
[
{$lookup: {
from: 'geoip',
localField: 'ipaddress',
foreignField: 'ipaddress',
as: 'data'
}},
{$unwind: 'data'},
{$group: {_id: '$data.country', count: {$sum: 1}}}
]