sql >> Databáze >  >> NoSQL >> MongoDB

Kontrola, zda v mongodb existuje index

Vytváření indexů v MongoDB je idempotentní operace. Takže spusťte db.names.createIndex({name:1}) vytvoří index pouze v případě, že by již neexistoval.

Zastaralý (od MongoDB 3.0) alias pro createIndex() je ensureIndex() což je o něco jasnější, co createIndex() vlastně ano.

Upravit: Děkujeme ZitRo za objasnění v komentářích, že volání createIndex() se stejným názvem, ale jinými možnostmi než existující index vyvolá chybu MongoError: Index with name: **indexName** already exists with different options jak je vysvětleno v této otázce.

Pokud máte jiné důvody pro kontrolu, můžete k aktuálním datům indexu přistupovat jedním ze dvou způsobů:

  1. Od verze 3.0 můžeme používat db.names.getIndexes() kde names je název kolekce. Dokumenty zde.
  2. Před verzí 3.0 máte přístup k system.indexes kolekce a find jak bri popisuje níže.


  1. Základy automatizace databáze MongoDB pomocí Chef

  2. Převést datum z milisekund na objekt ISODate

  3. MongoDB - Rozviňte pole pomocí agregace a odstraňte duplikáty

  4. Pochopení možností zálohování MongoDB