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