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:
- Seit v3.0 können wir
db.names.getIndexes()
verwenden wobeinames
ist der Name der Sammlung. Dokumente hier. - Vor v3.0 können Sie auf die
system.indexes
zugreifen Sammlung und führen Sie einefind
durch wie bri unten beschreibt.