我正在为具有此结构的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', ...]
}
但是我无法找到如何在网上获得这个。
答案 0 :(得分:1)
您应该尝试下面的内容。
collection.aggregate([
{
$group: {
_id: { country: "$country", region: "$region" }
}
}
], function (err, res) {
...
});
如果您需要不同的记录,可以查看$addToSet。