MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Премахване на дублиращи се записи от mongodb 4.0

Можете да групирате дублирани записи с помощта на тръбопровод за агрегиране:

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) .

ОБЯСНЕНИЕ на използването на тръбопровода за агрегиране:

  1. db.theCollection.aggregate([]) изпълнява тръбопровод за агрегиране, като получава списък с етапи на агрегиране, които трябва да бъдат изпълнени
  2. $group етап групи документи по полета, посочени като следващ _id поле
  3. $project етап промени имена на полета, изравняване на вложен _id поддокументи, произведени от $group
  4. $out етапът съхранява агрегираните получени документи в дадена колекция


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Laravel 5 Красноречива сума от умножени колони за mongo DB

  2. Каква е разликата между MongoDB Atlas и MongoDB Atlas за AWS

  3. как да управлявате полето _id, когато използвате POCO с mongodb c# драйвер

  4. Как да актуализирате определен елемент от масив в MongoDB

  5. Как мога да сортирам колекция Meteor по време на вмъкване?