mongodb GROUP BY 和 COUNT 文档中的数组
Posted
技术标签:
【中文标题】mongodb GROUP BY 和 COUNT 文档中的数组【英文标题】:mongodb GROUP BY and COUNT an Array within Document 【发布时间】:2021-06-13 09:22:44 【问题描述】:鉴于: 集合中的单个文档。 Document 包含一个数组。 (即集合中只有一个文档条目)
期望:
对city
和print counts
进行分组
样本数据:
name: "ABC Bank",
hospitalList: [
city: "Delhi", hspName: "EEE hospital",
city: "Delhi", hspName: "FFF hospital",
city: "Surat", hspName: "MMM hospital",
city: "Noida", hspName: "GGG hospital",
city: "Surat", hspName: "HHH hospital",
city: "Surat", hspName: "NNN hospital",
city: "Surat", hspName: "PPP hospital",
]
预期输出:
Delhi - 2
Noida - 1
Surat - 3
试过(但没用)
$group:
_id: "hospitalList.city",
count: $sum: 1
【问题讨论】:
【参考方案1】: $match - 匹配文件银行名称 $unwind - 拆分数组 自己文档中的对象 $group - 按城市分组然后计算 计数db.collection.aggregate([
$match:
name: "ABC Bank"
,
"$unwind": "$hospitalList"
,
$group:
_id: "$hospitalList.city",
count:
$sum: 1
])
Mongo 游乐场:https://mongoplayground.net/p/Ac7RkJd7vU9
按照预期的输出: Mongo游乐场:https://mongoplayground.net/p/zeqB7P-BYmI
【讨论】:
以上是关于mongodb GROUP BY 和 COUNT 文档中的数组的主要内容,如果未能解决你的问题,请参考以下文章
BIGQUERY 中的 COUNT() 和 GROUP BY
COUNT(DISTINCT) 和 COUNT(*) + GROUP BY 给出不同的结果