如何将其转换为 mongodb 聚合查询?

Posted

技术标签:

【中文标题】如何将其转换为 mongodb 聚合查询?【英文标题】:How do I convert this to mongodb aggregate query? 【发布时间】:2021-12-30 00:07:18 【问题描述】:

SELECT prop_type , count(prop_type) As no_of_properties 来自 prop_type 加入 prop_for_rent 使用(prop_type) GROUP BY prop_type;

prop_type 和 prop_for_rent 都是表。那么用于 JOIN 和 GROUP BY 的“prop_type”是两者中的一个属性名。

查询的预期结果是计算每个属性类型中的属性数量。 这是它的sql版本的结果 Screenshot of sql query result

所以我需要它来显示相同​​的prop_type,然后是mongodb中每种类型的属性数

【问题讨论】:

【参考方案1】:
db.prop_type.aggregate([
  
    "$lookup": 
      "from": "prop_for_rent",
      "localField": "prop_type",
      "foreignField": "prop_type",
      "as": "prop_for_rent_docs"
    
  ,
  
    "$unwind": 
      path: "$prop_for_rent_docs",
      preserveNullAndEmptyArrays: true
    
  ,
  
    "$group": 
      "_id": "$prop_type",
      "no_of_properties": 
        "$sum": 1
      
    
  
])

mongoplayground

【讨论】:

让我编辑问题,让我也尝试查询。谢谢 @Marss 我更新我的答案 在我进行了一些更改之后,原来的答案仍然有效,再次感谢! 完美!如果您能接受这个答案并投赞成票,那就太好了。

以上是关于如何将其转换为 mongodb 聚合查询?的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB聚合操作总结

MongoDB聚合操作总结

如何将 SQLite 查询转换为 MongoDB 查询

如何将 NOT (A AND B) 转换为 mongodb 查询

将 Mongodb 聚合管道转换为 C# .Net Core

在mongodb聚合管道中将毫秒转换为日期以进行分组?