我有一个包含多个重复记录的集合, 我想获取整个集合中的所有重复项。 记录是这样的:
a:1,b:2,c:3,
a:1,b:2,c:3,
a:4,b:3,c:3,
a:1,b:3,c:3,
a:1,b:7,c:3,
a:1,b:2,c:3
预期输出:{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,c:3}
答案 0 :(得分:1)
首先添加一个分组阶段,该阶段将根据您要分组的参数(在本例中为a,b和c)分组
然后找到您分组的参数中出现超过1个的值
db.collection.aggregate([
{
"$group": {
"_id": {
"a": "$a",
"b": "$b",
"c": "$c"
},
"count": {
$sum: 1
}
}
},
{
"$match": {
"count": {
"$gt": 1
}
}
}
])