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

Ако приложението ви използва MongoDB, искате да използвате силата на индексите, за да направите заявките си по-бързи и по-ефективни. И така, какво представляват индексите в MongoDB и как можете да ги създадете?

Какво представляват индексите в MongoDB?

Индексите в MongoDB ви позволяват да дадете приоритет на някои полета в документ и да ги превърнете в параметри на заявка по-късно. Когато създава колекция, MongoDB създава индекс на ID по подразбиране. Но можете да добавите още, ако имате по-високи заявки или нужди от подреждане.

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

instagram viewer

Индексите ви помагат да вземете конкретно това, което искате, като използвате дефинирания от вас формат на заявка в необходимото количество, без да сканирате цяла колекция. Когато създавате индекс, можете да посочите как искате вашите данни да бъдат сортирани, когато ги заявявате.

Например, ако решите да сортирате точки от данни по техните дати на влизане, без да използвате индекс, обикновено ще предоставите критерии за заявка и ред на сортиране.

Да речем, че искате да подредите възрасти, по-високи от определено число по низходяща дата на вписванията. Вашето запитване обикновено изглежда така:

db.collectionName.find({възраст: {$gt: 50}}).sort({дата: -1})

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

В този случай горната заявка става:

db.collectionName.find({age: {$gt: 50}})

Как да създадете индекс в MongoDB

Можете да създавате индекси в MongoDB, като използвате вградения му интерфейс за обвивка. Така че това е, което ще използваме в този урок.

Независимо от това, индексите не съществуват сами. Трябва да сте създаде база данни и колекция преди да можете да създадете индекс.

Както споменахме по-рано, отличителна черта на индексирането е, че ви позволява да зададете критерии за сортиране по време на създаването на индекс.

Например, индекс, който подрежда възрастта в обратен ред, изглежда така:

db.userCollection.createIndex({age: -1})

Отрицателното цяло число (-1) в кода казва на MongoDB да подрежда възрастта в обратен ред всеки път, когато заявявате данни с помощта на възраст индекс. По този начин може да не е необходимо да указвате ред на сортиране по време на заявки, тъй като индексът вече обработва това.

За да създадете индекс на същото поле във възходяща посока, заменете -1 с 1:

db.userCollection.createIndex({age: 1})

Въпреки че има и други типове индекси в MongoDB, това е начинът за създаване на единични и съставни форми — тъй като те са най-използваните.

Но преди да продължим, уверете се, че сте настройте MongoDB сървър на вашия компютър. Ако вече сте го направили, отворете обвивката на MongoDB и продължете.

Създайте единен индекс в MongoDB

Единичното индексиране в MongoDB е лесно. За да започнете, изберете база данни, която вече съдържа колекции.

Кажете, че името на нашата база данни е MUO:

използвайте MUO

След като изберете база данни, използвайте createIndex() команда в обвивката, за да създадете един индекс.

Например, за да създадете единичен индекс на потребителско име в колекция и да го използвате за заявка в обратен ред:

db.collectionName.createIndex({username: -1})

Многоключово индексиране в MongoDB

Многоключовите индекси са полезни за индексиране на поле в сложен масив от данни. Например, колекция може да съдържа сложни данни за потребители с тяхната информация в друг масив. Например кажете име, височина и възраст.

Можете да създадете многоключов индекс за височината на всеки потребител в този масив по следния начин:

db.customers.createIndex({user.height: 1})

В височина в горния код е подмножество от потребител поле.

Създайте сложен индекс

Съставният индекс съдържа повече от един индекс. За да създадете комбиниран индекс от адрес и тип продукт в колекция от клиенти, например:

db.customer.createIndex({адрес: 1, продукти: 1})

Тъй като не сте предоставили име при създаването на горния индекс, MongoDB го създава по подразбиране. Но разделя името на всеки индекс с долна черта. Така че е по-малко четим, особено ако имате повече от два индекса в съединение.

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

db.customers.createIndex({местоположение: 1, продукти: 1, тегло: -1}, {име: "myCompundIndex"})

Вземете всички индекси в колекция

За да видите всички индекси в колекция:

db.collectionName.getIndexes()

Горният код извежда всички индекси в колекция с име.

Организирайте вашата база данни с индекси

Индексирането в MongoDB намалява забавянето по време на изпълнение при изпълнение на едновременни заявки. Освен това те ви помагат да организирате вашата база данни и да я направите по-достъпна. Както видяхте, създаването на индекси в MongoDB не е сложно все пак. Примерите тук са достатъчни, за да започнете със създаването на индекс. Независимо от това, за да видите вашите индекси на практика, трябва да знаете как работи заявките в MongoDB.

Как да изпълнявате CRUD операции в MongoDB

Запознаването с MongoDB е трудно. Ударете се с CRUD.

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • Python
  • Програмиране
  • база данни
За автора
Идову Омисола (публикувани 119 статии)

Idowu е страстен за всичко, което е интелигентна технология и производителност. В свободното си време той си играе с кодирането и преминава към шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя около съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате