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

Как да премахнете дубликати въз основа на ключ в Mongodb?

Този отговор е остарял : dropDups опцията беше премахната в MongoDB 3.0, така че в повечето случаи ще се изисква различен подход. Например, можете да използвате агрегиране, както е предложено за:MongoDB дублиращи се документи дори след добавяне на уникален ключ.

Ако сте сигурни, че source_references.key идентифицира дублиращи се записи, можете да осигурите уникален индекс с dropDups:true Опция за създаване на индекс в MongoDB 2.6 или по-стара:

db.things.ensureIndex({'source_references.key' : 1}, {unique : true, dropDups : true})

Това ще запази първия уникален документ за всеки source_references.key стойност и изтрийте всички последващи документи, които иначе биха довели до нарушаване на дублиран ключ.

Важна забележка :Всички документи, в които липсва source_references.key ще се счита, че има нула стойност, така че следващите документи, в които липсва ключовото поле, ще бъдат изтрити. Можете да добавите sparse:true опция за създаване на индекс, така че индексът да се прилага само за документи с source_references.key поле.

Очевидно внимание :Направете резервно копие на вашата база данни и опитайте това първо в промежуточна среда, ако се притеснявате от неволна загуба на данни.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Изчислете стойността на пропускане за даден запис за сортирани страници

  2. mongodb c# как да работим с BSON документ

  3. Мангуста - причинена от ::11000 E11000 дублиран ключов индекс на грешка?

  4. MongoDB $floor

  5. Архитектура за сигурност:Ръководство за MongoDB