MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

3 sposoby tworzenia indeksu w MongoDB

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wstawić wiele dokumentów jednocześnie do MongoDB za pomocą Javy?

  2. Jak korzystać z modelowania danych MongoDB w celu poprawy operacji związanych z przepustowością

  3. Wiosenna paginacja danych mongo

  4. Spring Data MongoDB z Java 8 LocalDate MappingException

  5. Agregacja MongoDB z $lookup zawiera tylko (lub projekt) niektóre pola do zwrócenia z zapytania