Mongodb聚合函数引用另一个集合

Posted

技术标签:

【中文标题】Mongodb聚合函数引用另一个集合【英文标题】:Mongodb Aggregate function with reference to another collection 【发布时间】:2016-07-04 02:16:05 【问题描述】:

我有两个收藏

人员


  "name": "Tom",
  "car_id": "55b73e3e8ead0e220d8b45f3"

...

汽车


  "model": "BMW",
  "car_id": "55b73e3e8ead0e220d8b45f3"

...

如何进行查询,以便我可以获得以下结果(例如)

BMW : 2
Toyota: 3

下面是我的聚合函数。我可以将数据取出来,但它使用的是汽车 _id 而不是型号名称。

db.persons.aggregate([
   
    $group: 
        _id: 
            car_Id: "$car_id",
        ,

        carsCount: $sum: 1
    ,
  ,
]);

感谢任何帮助。

【问题讨论】:

【参考方案1】:

您可以通过一个查询在一个集合中进行内部聚合。我建议保留类似或类似的汇总数据:


    car_id: 273645jhg2f52345hj3564jh6
    sum: 4

当您需要向用户公开数据时,将 ID 替换为名称。

【讨论】:

您好,谢谢。始终在文档中维护 sum 键属性是最佳做法吗? 这取决于你 =)。但是,如果您正在进行聚合,那么对我来说拥有一些值字段和 SUM 的想法看起来不错。 docs.mongodb.org/manual/aggregation

以上是关于Mongodb聚合函数引用另一个集合的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb聚合:获取引用的文档字段值

MongoDB学习总结 —— 常用聚合函数

使用聚合 $lookup 加入 mongodb

1.19.9.函数概览函数引用精确函数引用模糊函数引用函数解析顺序精确函数引用模糊函数引用自定义函数准备工作概述开发指南函数类求值方法标量函数表值函数聚合函数

MongoDB Mongoose 聚合查询深度嵌套数组删除空结果并填充引用

与 mongoDb 和 mongoose 聚合后填充单个 ObjectId 引用