我正在使用mongoose,express和node制作目录网站。数据库中的每个列表都有一个城市和一个国家/地区,我想创建一个列出每个国家/地区的站点地图类型页面,以及在数据库中有项目的城市。
因此,对于数据库中的每个唯一国家/地区 - 列出该国家/地区,针对该国家/地区的每个唯一城市,列出该城市。
我找不到解决方案,这不是完全疯了,我错过了什么?
奖金回合:计算每个城市的列表数量会很好。
答案 0 :(得分:0)
您可以将聚合功能与group命令一起使用,您也可以在其中指定条件。 例如(在销售数据库中):以下聚合操作指定组_id为null,计算总价格和平均数量以及集合中所有文档的计数:
db.sales.aggregate(
[
{
$group : {
_id : null,
totalPrice: { $sum: { $multiply: [ "$price", "$quantity" ] } },
averageQuantity: { $avg: "$quantity" },
count: { $sum: 1 }
}
}
]
)
在这里,您可以使用国家/地区代替_id按国家/地区名称对文档进行分组 看到这个链接,也有一些例子 https://docs.mongodb.com/manual/reference/operator/aggregation/group/