sql >> Database >  >> NoSQL >> MongoDB

Controleren of er een Index bestaat in mongodb

Indexen maken in MongoDB is een idempotent-bewerking. Dus het uitvoeren van db.names.createIndex({name:1}) zou de index alleen maken als deze nog niet bestond.

De verouderde (vanaf MongoDB 3.0) alias voor createIndex() is ensureIndex() wat een beetje duidelijker is over wat createIndex() eigenlijk wel.

Bewerken: Met dank aan ZitRo voor het verduidelijken in opmerkingen dat het aanroepen van createIndex() met dezelfde naam maar andere opties dan een bestaande index geeft een fout MongoError: Index with name: **indexName** already exists with different options zoals uitgelegd in deze vraag.

Als u andere redenen heeft om te controleren, kunt u op twee manieren toegang krijgen tot de huidige indexgegevens:

  1. Vanaf v3.0 kunnen we db.names.getIndexes() gebruiken waar names is de naam van de collectie. Documenten hier.
  2. Vóór v3.0 heb je toegang tot de system.indexes verzameling en doe een find zoals bri hieronder beschrijft.


  1. MongoDB $jaar

  2. Logstash Web UI start niet

  3. kon geen verbinding maken met server 127.0.0.1 shell/mongo.js

  4. Microsoft.Extensions.Caching.Redis selecteer een andere database dan db0