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

mongo 3 дубликата на уникален индекс - dropDups

Да dropDupes вече е отхвърлен от версия 2.7.5, тъй като не беше възможно да се предвиди правилно кой документ ще бъде изтрит в процеса.

Обикновено имате 2 опции :

  1. Използвайте нова колекция :

    • Създайте нова колекция,
    • Създайте уникалния индекс за тази нова колекция,
    • Изпълнете пакет, за да копирате всички документи от старата колекция в новата и се уверете, че игнорирате грешка с дублиран ключ по време на процеса.
  2. Справете се с него в собствената си колекция ръчно :

    • уверете се, че няма да вмъквате повече дублирани документи в кода си,
    • изпълнете пакет от колекцията си, за да изтриете дубликатите (и се уверете, че запазвате добрия, ако не са напълно идентични),
    • след това добавете уникалния индекс.

За вашия конкретен случай бих препоръчал първата опция но с трик :

  • Създайте нова колекция с уникален индекс,
  • Актуализирайте кода си, така че вече да вмъквате документи в и двете таблици,
  • Изпълнете пакет, за да копирате всички документи от старата колекция в новата (игнорирайте грешка с дублиран ключ),
  • преименувайте новата колекция, за да съответства на старото име.
  • актуализирайте отново кода си, така че вече да пишете само в „старата“ колекция


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Създайте многоезичен текстов индекс в MongoDB

  2. Как да вмъкна документ в mongodb с помощта на mongoose и да получите генерирания идентификатор?

  3. mongodb $ в лимит

  4. Автоматично увеличение на Mongoose

  5. Свържете се с хост mongodb от докер контейнер