Als u een lijst wilt met identieke (behalve de _id
veld, uiteraard) documenten in uw verzameling, hier is hoe u dat kunt doen:
collection.aggregate({
$project: {
"_id": 1, // keep the _id field where it is anyway
"doc": "$$ROOT" // store the entire document in the "doc" field
}
}, {
$project: {
"doc._id": 0 // remove the _id from the stored document because we do not want to compare it
}
}, {
$group: {
"_id": "$doc", // group by the entire document's contents as in "compare the whole document"
"ids": { $push: "$_id" }, // create an array of all IDs that form this group
"count": { $sum: 1 } // count the number of documents in this group
}
}, {
$match: {
"count": { $gt: 1 } // only show what's duplicated
}
})
Zoals altijd met het aggregatieraamwerk, kun je proberen te begrijpen wat er precies aan de hand is in elke stap door alle stappen te becommentariëren en vervolgens alles stap voor stap opnieuw te activeren.