sql >> Databasteknik >  >> NoSQL >> MongoDB

3 sätt att skapa ett index i MongoDB

I MongoDB kan du skapa ett index på en samling med createIndexes() metoden, createIndexes() metoden, eller createIndexes administrationskommando.

createIndexes() Metod

db.collection.createIndexes() metoden skapar ett index på den angivna samlingen. Det är ett omslag för createIndexes administrationskommando.

Exempel:

db.pets.createIndex( { weight: -1 } )

Detta skapar ett index över husdjurssamlingen. Det är ett fallande index på weight fält. Vi vet att det är fallande eftersom vi angav -1 . Om vi ​​hade angett 1 det skulle ha varit stigande.

Ett sammansatt index är ett som är definierat på flera fält. Du kan skapa ett sammansatt index genom att separera varje fält med ett kommatecken.

Exempel:

db.pets.createIndex( { name: 1, type: -1 } )

Detta skapar ett sammansatt index på name fältet (i stigande ordning) och type fält (i fallande ordning).

createIndexes() Metod

db.collection.createIndexes() metod skapar ett eller flera index på en samling. Den här metoden är också ett omslag för createIndexes administrationskommando.

När du skapar index med createIndexes() metod måste du tillhandahålla fälten i en array. Du måste göra detta även om du bara skapar ett enda index.

Exempel:

db.pets.createIndexes( [ { weight: -1 } ] )

Det gör samma sak som det första exemplet gör. Det skapar ett fallande index på weight fältet.

För att skapa flera index, separera varje indexdokument med ett kommatecken.

Exempel:

db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )

Du kan också skapa sammansatta index med createIndexes() . För att göra detta, definiera helt enkelt det sammansatta indexet i dokumentet för det indexet.

Därför kan vi göra följande:

db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )

Det skapar ett sammansatt index för name och type fält och ett separat index för weight fältet.

createIndexes Kommando

createIndexes administrationskommandot skapar ett eller flera index på en samling De två föregående metoderna är omslag runt detta kommando.

Därför kan vi använda createIndexes kommandot för att skapa de index som vi gjorde i de tidigare exemplen.

Här är ett exempel på hur du skapar ett index på name fält:

db.runCommand(
  {
    createIndexes: "pets",
    indexes: [
      {
        key: { "name" : 1 },
        name: "idx_name_1"
      }
    ]
  }
)

I de tidigare exemplen lät vi MongoDB namnge våra index, men i det här fallet döpte vi indexet till idx_name_1 .

Här är ett exempel på hur du skapar flera index:

db.runCommand(
  {
    createIndexes: "pets",
    indexes: [
      {
        key: { "name" : 1, type: -1 },
        name: "idx_name_1_type_-1"
      },
      {
        key: { "weight" : -1 },
        name: "idx_weight_-1"
      }
    ]
  }
)

I det här fallet är det första indexet ett sammansatt index på name och type fält, och vi döpte det till idx_name_1_type_-1 .

Det andra indexet är på weight och vi kallade det idx_weight_-1 .

Jokerteckenindex

Alla tre ovanstående metoder stöder jokerteckenindex från MongoDB 4.2 (featureCompatibilityVersion måste vara minst 4.2 för att skapa jokerteckenindex).

Jokerteckenindex är användbara för samlingar som innehåller ostrukturerad data med olika fält i olika hierarkier.

Se Hur man skapar ett jokerteckenindex i MongoDB för exempel.

MongoDB-dokumentation

Nedan finns länkar till MongoDB-dokumentationen för var och en av ovanstående:

  • db.collection.createIndexes()
  • db.collection.createIndexes()
  • createIndexes

  1. Mongo tryck till array inuti array

  2. Hur man gör fulltextsökning i MongoDB

  3. Uppdaterar kapslad array inuti array mongodb

  4. Länka och skapa MongoDB-anslutningar med SQL:Del 1