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

Проверка дали съществува индекс в mongodb

Създаването на индекси в MongoDB е идемпотентна операция. Така че стартирайте db.names.createIndex({name:1}) ще създаде индекса само ако той вече не съществува.

Оттегленият (от MongoDB 3.0) псевдоним за createIndex() е ensureIndex() което е малко по-ясно какво createIndex() всъщност го прави.

Редактиране: Благодаря на ZitRo за разяснението в коментарите, че извикването на createIndex() със същото име, но различни опции от съществуващ индекс, ще изведе грешка MongoError: Index with name: **indexName** already exists with different options както е обяснено в този въпрос.

Ако имате други причини за проверка, тогава можете да получите достъп до текущите индексни данни по един от двата начина:

  1. От v3.0 можем да използваме db.names.getIndexes() където names е името на колекцията. Документи тук.
  2. Преди версия 3.0 можете да получите достъп до system.indexes колекция и направете find както bri описва по-долу.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Групирайте и пребройте по месеци

  2. Оператори за агрегиране на MongoDB за връщане на части за дата

  3. Как да разположите Percona Server за MongoDB за висока наличност

  4. промяна на типа mongodb в масив

  5. MongoDB 'count()' е много бавен. Как да го усъвършенстваме/заобикаляме?