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

Премахване на дубликат в MongoDB

Да, dropDups изчезна завинаги. Но определено можете да постигнете целта си с малко усилия.

Първо трябва да намерите всички дублиращи се редове и след това да премахнете всички освен първо.

db.dups.aggregate([{$group:{_id:"$contact_id", dups:{$push:"$_id"}, count: {$sum: 1}}},
{$match:{count: {$gt: 1}}}
]).forEach(function(doc){
  doc.dups.shift();
  db.dups.remove({_id : {$in: doc.dups}});
});

Както виждате doc.dups.shift() ще премахне първия _id от масива и след това премахнете всички документи с оставащи _ids в масива за дублиране.

скриптът по-горе ще премахне всички дублиращи се документи.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Пакетно вмъкване/актуализация с помощта на Mongoid?

  2. Как да правя необработени mongodb операции в mongoose?

  3. MongoDB - потребител с администратор не е оторизиран

  4. Заявка за Mongo, използваща mongoid в приложението Rails, което причинява грешка при изчакване на курсора

  5. Полетата за резултати от Mongoose/MongoDB изглеждат недефинирани в Javascript