Du kan nemt identificere dubletterne ved at køre følgende aggregeringspipelineoperation:
db.collection.aggregate([
{
"$group": {
"_id": { "foreing": "$foreing", "value": "$value" },
"uniqueIds": { "$addToSet": "$_id" },
"count": { "$sum": 1 }
}
},
{ "$match": { "count": { "$gt": 1 } } }
])
$group operatør i det første trin bruges til at gruppere dokumenterne efter foreign og value nøgleværdier, og opret derefter en matrix af _id værdier for hvert af de grupperede dokumenter som uniqueIds feltet ved hjælp af $addToSet operatør. Dette giver dig en række unikke udtryksværdier for hver gruppe. Få det samlede antal grupperede dokumenter til brug i de senere pipeline-faser med $sum operatør.
Brug $match i den anden pipeline-fase operatør for at bortfiltrere alle dokumenter med et antal på 1. De bortfiltrerede dokumenter repræsenterer unikke indeksnøgler.
De resterende dokumenter vil være dem i samlingen, der har dublerede nøgleværdier for par foreing &value .