sql >> Databáze >  >> NoSQL >> MongoDB

3 způsoby, jak vytvořit index v MongoDB

V MongoDB můžete vytvořit index na kolekci pomocí createIndex() metoda createIndexes() nebo createIndexes administrační příkaz.

Položka createIndex() Metoda

db.collection.createIndex() metoda vytvoří index na zadané kolekci. Je to obal pro createIndexes administrační příkaz.

Příklad:

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

Tím se vytvoří index sbírky mazlíčků. Je to sestupný index na weight pole. Víme, že je to sestupné, protože jsme zadali -1 . Pokud bychom zadali 1 bylo by to vzestupné.

Složený index je index, který je definován ve více polích. Složený index můžete vytvořit tak, že každé pole oddělíte čárkou.

Příklad:

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

Tím se vytvoří složený index na name pole (ve vzestupném pořadí) a type pole (v sestupném pořadí).

Příkaz createIndexes() Metoda

db.collection.createIndexes() metoda vytvoří jeden nebo více indexů v kolekci Tato metoda je také obalem pro createIndexes administrační příkaz.

Když vytváříte indexy pomocí createIndexes() musíte zadat pole v poli. Musíte to udělat, i když vytváříte pouze jeden index.

Příklad:

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

To dělá totéž, co dělá první příklad. Vytváří sestupný index na weight pole.

Chcete-li vytvořit více indexů, oddělte každý dokument indexu čárkou.

Příklad:

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

Složené indexy můžete vytvořit také pomocí createIndexes() . Chcete-li to provést, jednoduše definujte složený index v dokumentu pro tento index.

Proto bychom mohli provést následující:

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

Tím se vytvoří složený index pro name a type pole a samostatný index pro weight pole.

Položka createIndexes Příkaz

createIndexes administrační příkaz vytvoří jeden nebo více indexů na kolekci Předchozí dvě metody jsou obaly kolem tohoto příkazu.

Proto můžeme použít createIndexes příkaz k vytvoření indexů, které jsme provedli v předchozích příkladech.

Zde je příklad vytvoření indexu pro name pole:

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

V předchozích příkladech jsme nechali MongoDB pojmenovat naše indexy, ale v tomto případě jsme index pojmenovali idx_name_1 .

Zde je příklad vytvoření více indexů:

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

V tomto případě je první index složený index na name a type polí a pojmenovali jsme jej idx_name_1_type_-1 .

Druhý index je na weight pole a nazvali jsme ho idx_weight_-1 .

Zástupné znaky

Všechny tři výše uvedené přístupy podporují indexy zástupných znaků od verze MongoDB 4.2 (featureCompatibilityVersion musí být alespoň 4.2 k vytvoření indexů zástupných znaků).

Indexy zástupných znaků jsou užitečné pro kolekce, které obsahují nestrukturovaná data s různými poli v různých hierarchiích.

Příklady viz Jak vytvořit index zástupných znaků v MongoDB.

Dokumentace MongoDB

Níže jsou uvedeny odkazy na dokumentaci MongoDB pro každou z výše uvedených položek:

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

  1. Nelze získat zdroj z fondu (SocketTimeoutException:)

  2. MongoDB $kulatý

  3. MongoDB:Jedinečný klíč ve vloženém dokumentu

  4. Nelze se připojit k Redis na 127.0.0.1:6379:Připojení odmítnuto