MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Hapus catatan duplikat dari mongodb 4.0

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:

  1. db.theCollection.aggregate([]) mengeksekusi pipeline agregasi, menerima daftar tahapan agregasi yang akan dieksekusi
  2. $group dokumen grup tahap menurut bidang yang ditentukan sebagai _id berikutnya lapangan
  3. $project tahap mengubah nama bidang, meratakan _id subdokumen yang dihasilkan oleh $group
  4. $out tahap menyimpan agregasi dokumen yang dihasilkan ke dalam koleksi yang diberikan


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cara mendapatkan nilai maksimal bidang di MongoDB

  2. Koneksi Go dan MongoDB tidak akan berfungsi dengan log panik tanpa server yang dapat dijangkau

  3. Mongoose read-only tanpa skema

  4. mongod HostnameCanonicalizationWorker error pada OS X

  5. Grup MongoDB berdasarkan Fungsi