使用Mongoose和Node.js搜索集合并返回每个唯一类别

时间:2018-04-01 09:32:08

标签: node.js mongoose

我正在使用mongoose,express和node制作目录网站。数据库中的每个列表都有一个城市和一个国家/地区,我想创建一个列出每个国家/地区的站点地图类型页面,以及在数据库中有项目的城市。

因此,对于数据库中的每个唯一国家/地区 - 列出该国家/地区,针对该国家/地区的每个唯一城市,列出该城市。

我找不到解决方案,这不是完全疯了,我错过了什么?

奖金回合:计算每个城市的列表数量会很好。

1 个答案:

答案 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/