Anda dapat mengelompokkan rekaman duplikat menggunakan jalur agregasi:
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"}
])
Setelah eksekusi pipa agregasi, theCollectionWithoutDuplicates koleksi berisi dokumen untuk setiap kelompok dokumen asli yang digandakan, dengan _id baru - Anda dapat memverifikasi output, menghapus koleksi asli (db.theCollection.drop() ) dan ganti nama koleksi baru (db.theCollectionWithoutDuplicates.renameCollection('theCollection') ). Jatuhkan dan ganti nama dapat digabungkan dalam db.theCollectionWithoutDuplicates.renameCollection('theCollection', true) .
PENJELASAN penggunaan pipa agregasi:
db.theCollection.aggregate([])mengeksekusi pipeline agregasi, menerima daftar tahapan agregasi yang akan dieksekusi$groupdokumen grup tahap menurut bidang yang ditentukan sebagai_idberikutnya lapangan$projecttahap mengubah nama bidang, meratakan_idsubdokumen yang dihasilkan oleh$group$outtahap menyimpan agregasi dokumen yang dihasilkan ke dalam koleksi yang diberikan