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