计算 MongoDB 中重复元素的数量
Posted
技术标签:
【中文标题】计算 MongoDB 中重复元素的数量【英文标题】:Count the number of duplicate elements in MongoDB 【发布时间】:2021-12-22 06:54:36 【问题描述】:我在 mongodb 中遇到了集合打击:
"Id": "5",
"Group": [
"Name": "frank",
"Roll": "123"
]
,
"Id": "6",
"Group": [
"Name": "John",
"Roll": "124"
]
,
"Id": "7",
"Group": [
"Name": "John",
"Roll": "125"
]
名字“John”出现了两次。我想显示多次出现的每个名称的数量:
"Name": "John", "Count":2
【问题讨论】:
【参考方案1】:您可以使用此聚合查询:
首先$unwind
解构数组并将所有值作为对象获取。
然后按名称分组,$sum
1 代表每个名称。
然后$match
获取那些存在多次(即重复)的值
最后一个阶段是输出您想要的值,在本例中为 Name
和 Count
。
db.collection.aggregate([
"$unwind": "$Group"
,
"$group":
"_id": "$Group.Name",
"Count":
"$sum": 1
,
,
"$match":
"Count":
"$gt": 1
,
"$project":
"_id": 0,
"Name": "$_id",
"Count": 1
])
例如here
【讨论】:
以上是关于计算 MongoDB 中重复元素的数量的主要内容,如果未能解决你的问题,请参考以下文章