MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

3 начина за създаване на индекс в MongoDB

В MongoDB можете да създадете индекс на колекция с помощта на createIndex() метод, createIndexes() метод или createIndexes административна команда.

createIndex() Метод

db.collection.createIndex() метод създава индекс на посочената колекция. Това е обвивка за createIndexes административна команда.

Пример:

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

Това създава индекс на колекцията от домашни любимци. Това е низходящ индекс на weight поле. Знаем, че е низходящо, защото посочихме -1 . Ако сме посочили 1 щеше да е възходящо.

Съставният индекс е този, който е дефиниран в множество полета. Можете да създадете комбиниран индекс, като разделите всяко поле със запетая.

Пример:

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

Това създава комбиниран индекс на name поле (във възходящ ред) и type поле (в низходящ ред).

createIndexes() Метод

db.collection.createIndexes() метод създава един или повече индекси в колекция Този метод също е обвивка за createIndexes административна команда.

Когато създавате индекси с createIndexes() метод, трябва да предоставите полетата в масив. Трябва да направите това, дори ако създавате само един индекс.

Пример:

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

Това прави същото, което прави първият пример. Той създава низходящ индекс на weight поле.

За да създадете множество индекси, отделете документа на всеки индекс със запетая.

Пример:

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

Можете също да създавате съставни индекси с createIndexes() . За да направите това, просто дефинирайте съставния индекс в документа за този индекс.

Следователно бихме могли да направим следното:

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

Това създава комбиниран индекс за name и type полета и отделен индекс за weight поле.

createIndexes Команда

createIndexes командата Administration създава един или повече индекси в колекция. Предишните два метода са обвивки около тази команда.

Следователно можем да използваме createIndexes команда за създаване на индексите, които направихме в предишните примери.

Ето пример за създаване на индекс на name поле:

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

В предишните примери оставихме MongoDB да наименува нашите индекси, но в този случай наименувахме индекса idx_name_1 .

Ето пример за създаване на множество индекси:

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

В този случай първият индекс е съставен индекс на name и type полета и го нарекохме idx_name_1_type_-1 .

Вторият индекс е на weight поле и го нарекохме idx_weight_-1 .

Индекси с заместващи знаци

И трите от горните подхода поддържат заместващи индекси от MongoDB 4.2 (featureCompatibilityVersion трябва да е най-малко 4.2 за създаване на заместващи индекси).

Индексите за заместващи символи са полезни за колекции, които съдържат неструктурирани данни с различни полета в различни йерархии.

Вижте как да създадете индекс за заместващи символи в MongoDB за примери.

Документация на MongoDB

По-долу са връзки към документацията на MongoDB за всяко от горните:

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo не може да стартира

  2. не можа да се свърже със сървър 127.0.0.1 shell/mongo.js

  3. MongoDB $ сортиране

  4. $project в $lookup mongodb

  5. Как да украсите експортираните MongoDB документи в mongoexport