MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Prüfen, ob ein Index in mongodb existiert

Das Erstellen von Indizes in MongoDB ist eine idempotente Operation. Also db.names.createIndex({name:1}) ausführen würde den Index nur erstellen, wenn er noch nicht existiert.

Der veraltete (ab MongoDB 3.0) Alias ​​für createIndex() ist ensureIndex() was ein bisschen klarer ist, was createIndex() ist tatsächlich.

Bearbeiten: Danke an ZitRo für die Klarstellung in Kommentaren zum Aufruf von createIndex() mit demselben Namen, aber anderen Optionen als ein vorhandener Index wird einen Fehler auslösen MongoError: Index with name: **indexName** already exists with different options wie in dieser Frage erklärt.

Wenn Sie andere Gründe für die Überprüfung haben, können Sie auf zwei Arten auf aktuelle Indexdaten zugreifen:

  1. Seit v3.0 können wir db.names.getIndexes() verwenden wobei names ist der Name der Sammlung. Dokumente hier.
  2. Vor v3.0 können Sie auf die system.indexes zugreifen Sammlung und führen Sie eine find durch wie bri unten beschreibt.