mongodb中的多个分组

时间:2015-10-16 21:34:21

标签: node.js mongodb

我正在为具有此结构的mongo数据库中的用户创建搜索表单

[
    { _id: 45aba8a34a8a,
      name: blabla,
      country: france,
      region: alsace
     },
     { _id: 6ccbef3a4a83,
      name: blabla,
      country: germany,
      region: hessen
     }
]

我想要实现的是获取数据库中可能的国家和地区的列表。我可以通过以下代码部分实现这一目标

collection.aggregate([
    {
        $group: {
            _id: "$country"
        }
    }
], function (err, res) {
    ...
});

然而,这只会给我分组的国家而不是地区。有没有办法在单个聚合中执行此操作?我想理想的结果就像是

{
    countries: [ 'france', 'germany', ... ],
    regions: [ 'alsace', 'hessen', ...]
}

但是我无法找到如何在网上获得这个。

1 个答案:

答案 0 :(得分:1)

您应该尝试下面的内容。

collection.aggregate([
    {
        $group: {
            _id: { country: "$country", region: "$region" }
        }
    }
], function (err, res) {
    ...
});

如果您需要不同的记录,可以查看$addToSet