Можете да групирате дублирани записи с помощта на тръбопровод за агрегиране:
db.theCollection.aggregate([
{$group: {_id: {item: "$item", qty: "$qty", size: "$size", status: "$status"}}},
{$project: {_id: 0, item: "$_id.item", qty: "$_id.qty", size: "$_id.size", status: "$_id.status"}},
{$out: "theCollectionWithoutDuplicates"}
])
След изпълнението на тръбопровода за агрегиране, theCollectionWithoutDuplicates колекцията съдържа документ за всяка група оригинални дублирани документи с нов _id - можете да проверите изхода, като премахнете оригиналната колекция (db.theCollection.drop() ) и преименувайте новата колекция (db.theCollectionWithoutDuplicates.renameCollection('theCollection') ). Пускането и преименуването могат да се комбинират в db.theCollectionWithoutDuplicates.renameCollection('theCollection', true) .
ОБЯСНЕНИЕ на използването на тръбопровода за агрегиране:
db.theCollection.aggregate([])изпълнява тръбопровод за агрегиране, като получава списък с етапи на агрегиране, които трябва да бъдат изпълнени$groupетап групи документи по полета, посочени като следващ_idполе$projectетап промени имена на полета, изравняване на вложен_idподдокументи, произведени от$group$outетапът съхранява агрегираните получени документи в дадена колекция