W MongoDB możesz utworzyć indeks w kolekcji za pomocą createIndex() metoda createIndexes() metody lub createIndexes polecenie administracyjne.
createIndex() Metoda
db.collection.createIndex() Metoda tworzy indeks w określonej kolekcji. To opakowanie dla createIndexes polecenie administracyjne.
Przykład:
db.pets.createIndex( { weight: -1 } )
Tworzy to indeks w kolekcji pets. Jest to malejący indeks według weight pole. Wiemy, że maleje, ponieważ określiliśmy -1 . Gdybyśmy określili 1 byłby wznoszący się.
Indeks złożony to taki, który jest zdefiniowany w wielu polach. Możesz utworzyć indeks złożony, oddzielając każde pole przecinkiem.
Przykład:
db.pets.createIndex( { name: 1, type: -1 } )
Tworzy to złożony indeks na name pole (w kolejności rosnącej) i type pole (w porządku malejącym).
createIndexes() Metoda
db.collection.createIndexes() metoda tworzy jeden lub więcej indeksów w kolekcji Ta metoda jest także opakowaniem dla createIndexes polecenie administracyjne.
Kiedy tworzysz indeksy za pomocą createIndexes() metody, musisz podać pola w tablicy. Musisz to zrobić, nawet jeśli tworzysz tylko jeden indeks.
Przykład:
db.pets.createIndexes( [ { weight: -1 } ] )
Robi to samo, co pierwszy przykład. Tworzy malejący indeks na weight pole.
Aby utworzyć wiele indeksów, oddziel każdy dokument indeksu przecinkiem.
Przykład:
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
Możesz także tworzyć indeksy złożone za pomocą createIndexes() . Aby to zrobić, po prostu zdefiniuj indeks złożony w dokumencie dla tego indeksu.
Dlatego możemy wykonać następujące czynności:
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
To tworzy indeks złożony dla name i type pola i osobny indeks dla weight pole.
createIndexes Polecenie
createIndexes polecenie administracyjne tworzy jeden lub więcej indeksów w kolekcji Poprzednie dwie metody są otoczone wokół tego polecenia.
Dlatego możemy użyć createIndexes polecenie, aby utworzyć indeksy, które zrobiliśmy w poprzednich przykładach.
Oto przykład tworzenia indeksu na name pole:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
W poprzednich przykładach MongoDB nazwaliśmy nasze indeksy, ale w tym przypadku nazwaliśmy indeks idx_name_1 .
Oto przykład tworzenia wielu indeksów:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
W tym przypadku pierwszy indeks jest indeksem złożonym na name i type pola i nazwaliśmy je idx_name_1_type_-1 .
Drugi indeks znajduje się na weight pole i nazwaliśmy je idx_weight_-1 .
Indeksy wieloznaczne
Wszystkie trzy powyższe podejścia obsługują indeksy wieloznaczne od MongoDB 4.2 (featureCompatibilityVersion musi mieć co najmniej 4.2 aby utworzyć indeksy z symbolami wieloznacznymi).
Indeksy wieloznaczne są przydatne w przypadku kolekcji, które zawierają nieustrukturyzowane dane z różnymi polami w różnych hierarchiach.
Zobacz Jak utworzyć indeks wieloznaczny w MongoDB, aby zapoznać się z przykładami.
Dokumentacja MongoDB
Poniżej znajdują się linki do dokumentacji MongoDB dla każdego z powyższych:
db.collection.createIndex()db.collection.createIndexes()createIndexes