sql >> Database teknologi >  >> NoSQL >> MongoDB

Tjek om der findes et indeks i mongodb

Oprettelse af indekser i MongoDB er en idempotent operation. Så kører db.names.createIndex({name:1}) ville kun oprette indekset, hvis det ikke allerede eksisterede.

Det forældede (fra MongoDB 3.0) alias for createIndex() er ensureIndex() hvilket er lidt tydeligere om hvad createIndex() faktisk gør.

Rediger: Tak til ZitRo for at præcisere i kommentarer, at kaldet createIndex() med det samme navn, men andre muligheder end et eksisterende indeks vil give en fejl MongoError: Index with name: **indexName** already exists with different options som forklaret i dette spørgsmål.

Hvis du har andre grunde til at tjekke, så kan du få adgang til aktuelle indeksdata på en af ​​to måder:

  1. Fra og med v3.0 kan vi bruge db.names.getIndexes() hvor names hedder samlingen. Dokumenter her.
  2. Før v3.0 kan du få adgang til system.indexes indsamling og lav en find som bri beskriver nedenfor.


  1. Rails 3:hvordan man bruger aktiv plade og mongoid på samme tid

  2. Ændring af Redis-port i Docker Compose virker ikke

  3. Hvad er den anbefalede måde at droppe indekser ved at bruge Mongoose?

  4. Kombiner to OR-forespørgsler med AND i Mongoose