Као и код сваке базе података, индекси су основне структуре података у МонгоДБ-у. Они подстичу једноставне упите у бази података и омогућавају вам да складиштите и уредите део своје колекције у јединственим пољима. Индекси такође подржавају упите опсега без проблема.

Ако ваша апликација користи МонгоДБ, желите да искористите моћ индекса да би ваши упити били бржи и ефикаснији. Дакле, шта су индекси у МонгоДБ-у и како их можете креирати?

Шта су индекси у МонгоДБ-у?

Индекси у МонгоДБ-у вам омогућавају да дате приоритет неким пољима у документу и да их касније претворите у параметре упита. Када креирате колекцију, МонгоДБ креира подразумевани ИД индекс. Али можете додати више ако имате веће упите или потребе за аранжманом.

Јединствени индекси такође спречавају дупликате током уноса података. Они су корисни за одбијање уноса који већ постоје у бази података. Тако можете да користите јединствено индексирање на корисничким именима и пољима е-поште, на пример.

Индекси вам помажу да ухватите тачно оно што желите користећи дефинисани формат упита у потребној количини без скенирања целе колекције. Када креирате индекс, можете одредити како желите да се ваши подаци сортирају кад год их постављате.

instagram viewer

На пример, ако одлучите да сортирате тачке података по датумима њиховог уноса без коришћења индекса, обично ћете обезбедити критеријуме упита и редослед сортирања.

Рецимо да желите да распоредите узрасте веће од одређеног броја према опадајућем датуму уноса. Ваш упит обично изгледа овако:

дб.цоллецтионНаме.финд({старост: {$гт: 50}}).сорт({датум: -1})

Али ако сте имали индекс на датуме уноса, требало би да наведете само критеријуме упита. То је тако зато што бисте већ сортирали датум опадајуће током креирања индекса.

У том случају, горњи упит постаје:

дб.цоллецтионНаме.финд({старост: {$гт: 50}})

Како направити индекс у МонгоДБ-у

Можете креирати индексе у МонгоДБ користећи његов уграђени интерфејс љуске. Дакле, то је оно што ћемо користити у овом водичу.

Ипак, индекси не постоје сами. Мора да си креирао базу података и колекцију пре него што можете да креирате индекс.

Као што смо раније поменули, истакнута карактеристика индексирања је то што вам омогућава да одредите критеријуме сортирања током креирања индекса.

На пример, индекс који распоређује старост у обрнутом редоследу изгледа овако:

дб.усерЦоллецтион.цреатеИндек({аге: -1})

Негативан цео број (-1) у коду говори МонгоДБ-у да распореди старост обрнутим редоследом кад год постављате упит за податке користећи године индекс. Стога, можда нећете морати да наведете редослед сортирања током упита пошто индекс то већ обрађује.

Да бисте креирали индекс истог поља узлазно, замените -1 са 1:

дб.усерЦоллецтион.цреатеИндек({старост: 1})

Иако постоје и други типови индекса у МонгоДБ-у, овако се креирају појединачни и сложени облици — пошто су они најчешће коришћени.

Али пре него што наставимо, уверите се да јесте поставите МонгоДБ сервер на вашем рачунару. Ако сте то већ урадили, отворите шкољку МонгоДБ и пратите даље.

Направите јединствени индекс у МонгоДБ

Појединачно индексирање у МонгоДБ-у је једноставно. За почетак изаберите базу података која већ садржи колекције.

Рецимо да је име наше базе података МУО:

користите МУО

Када изаберете базу података, користите цреатеИндек() команду у љусци за креирање једног индекса.

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

дб.цоллецтионНаме.цреатеИндек({корисничко име: -1})

Индексирање са више кључева у МонгоДБ

Индекси са више кључева су корисни за индексирање поља у сложеном низу података. На пример, колекција може да садржи сложене податке корисника са њиховим информацијама у другом низу. На пример, реците име, висину и старост.

Можете да креирате индекс са више кључева на висини сваког корисника у том низу на следећи начин:

дб.цустомерс.цреатеИндек({усер.хеигхт: 1})

Тхе висина у горњем коду је подскуп корисник поље.

Направите сложени индекс

Сложени индекс садржи више од једног индекса. Да бисте направили сложени индекс адресе и типа производа у колекцији купаца, на пример:

дб.цустомер.цреатеИндек({адреса: 1, производи: 1})

Пошто нисте дали име док сте креирали горњи индекс, МонгоДБ га подразумевано креира. Али одваја назив сваког индекса доњом цртом. Тако да је мање читљив, посебно ако имате више од два индекса у сложеном.

Да бисте навели име приликом креирања сложеног индекса:

дб.цустомерс.цреатеИндек({локација: 1, производи: 1, тежина: -1}, {наме: "миЦомпундИндек"})

Преузмите све индексе у колекцији

Да бисте видели све индексе у колекцији:

дб.цоллецтионНаме.гетИндекес()

Горњи код исписује све индексе у именованој колекцији.

Организујте своју базу података помоћу индекса

Индексирање у МонгоДБ-у смањује кашњење током извршавања истовремених упита. Осим тога, помажу вам да организујете своју базу података и учините је приступачнијом. Као што сте видели, креирање индекса у МонгоДБ ипак није сложено. Примери овде су довољни да започнете креирање индекса. Без обзира на то, да бисте видели своје индексе у пракси, морате знати како функционисање упита у МонгоДБ-у.

Како извршити ЦРУД операције у МонгоДБ-у

Упознавање МонгоДБ-а је тешко. Покрени се са ЦРУД-ом.

Реад Нект

ОбјавиТвеетЕмаил
Повезане теме
  • Програмирање
  • Питхон
  • Програмирање
  • база података
О аутору
Идову Омисола (Објављено 119 чланака)

Идову је страствен за све паметне технологије и продуктивност. У слободно време игра се са кодирањем и прелази на шаховску таблу када му је досадно, али такође воли да се с времена на време одвоји од рутине. Његова страст да људима покаже пут око модерне технологије мотивише га да пише више.

Више од Идову Омисола

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили