In MongoDB, per rimuovere i dati duplicati, è possibile utilizzare il comando `distinct()` per ottenere valori unici per un dato campo. Tuttavia, se si desidera rimuovere i duplicati, sarà necessario creare uno script.
Ecco un semplice esempio di un’operazione che rimuoverebbe i duplicati in base ad un campo specifico (ad es. `campoDuplicato`) da una data collezione (ad es. `miaCollezione`):
```
var docs = db.miaCollezione.aggregate([
{ $group: {
_id: { campoDuplicato: “$campoDuplicato” },
dups: { $push: “$_id” },
count: { $sum: 1 }
}},
{ $match: {
count: { $gt: 1 }
}}
]);
docs.forEach(function(doc) {
doc.dups.shift();
db.miaCollezione.deleteMany({ _id : { $in: doc.dups }});
});
```
In questo script, la parte `$group` raggruppa i documenti in base al campo duplicato, `$push` aggiunge l’ID di ogni documento duplicato ad un array, e `$sum` conta il numero totale di duplicati.
Poi, la parte `$match` seleziona solo i documenti con più di una occorrenza.
Infine, la funzione `forEach` scorre ogni gruppo di duplicati, rimuove l’ID del primo duplicato dall’array (per mantenerne almeno uno), e quindi rimuove tutti gli altri documenti duplicati utilizzando `deleteMany()`.
Attenzione, questo metodo rimuove dati quindi è consigliato eseguire un backup prima di procedere.