Въведение в MongoDB създаване на индекс

MongoDB се използва от сложно извличане на данни, алгоритми за анализ на данни за управление, промяна и подреждане на данните, върху които работят. Данните, с които се занимават, са удивителни и изискват ефективно боравене. Индексите в СУБД помагат за повишаване на производителността на заявки като извличане и актуализиране на данни. Представете си колекция, която има стотици документи. За да намери документи, които съответстват на конкретен филтър, MongoDB ще трябва да съпостави филтъра с всички документи, които присъстват в колекцията, което е досадно и отнема много време. Вместо индексиране на документи (полета) ще намали значително времето за търсене. В тази тема ще научим за MongoDB create Index.

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

Основният синтаксис за създаване на индекс

db.collectionName.createIndex(, )

ключовеКлючовете е документ, който съдържа двойка стойност на полето, където полето е индексен ключ, а стойността е типът индекс.

Например стойността е 1 за сортиране на индексния ключ във възходящ ред и -1 в низходящ ред

НастроикиOption (s) е документ, който съдържа набор от опции, които влияят върху създаването на индекси. Тези опции не са задължителни.

Видове индекси

Ето типовете индекси, споменати по-долу

1. Идентификатор по подразбиране

Всеки документ в колекцията на Монго съдържа индекс

по подразбиране, наречено „_id“. По време на създаването на документа се създава идентификатор на обект, ако няма индексни стойности.

2. Единично поле

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

Пример: db.collection.createIndex (("възраст": 1))

3. Състав на индекса

MongoDB поддържа дефинирани от потребителя индекси в множество полета. Редът на полетата, дадени в сложния индекс, е доста значителен. Редът за сортиране отляво надясно, wrt с приоритет към първото поле, споменато в съставните индекси, е по-високо от това на следващото.

Пример: db.collection.createIndex (("възраст": 1, "dim.h": - 1)). В този пример всички документи с възрастово поле първо се сортират във възходящ ред и след това в низходящ ред по височина в дим.

4. Multikey Index

MongoDB използва Multikey Index, за да индексира данни, които са във формат на масив. Докато индексирането, всеки елемент в масива се създава отделен индекс и данните се индексират въз основа на елементите (ите), присъстващи в масива. MongoDB се грижи, ако полето на индекса има масив в него по подразбиране.

5. Геопространствен индекс

MongoDB използва геопространствено индексиране, за да намери данни въз основа на своето местоположение. Той поддържа два типа търсене, 2D (двумерно) и 3D (триизмерно). Тези индекси се използват за получаване на резултати в диапазон. Броят на резултатите от търсенето също може да бъде ограничен чрез използване на функция limit ().

Пример: db.players.find ((loc: ($ near: ($ geometry: (type: “high_school”, sport: “баскетбол” възраст: (14, 17)))))). В този пример ще намерите всички записи на ученици, които са в средно училище, играят баскетбол и са във възрастовия диапазон от 14 до 17 години.

6. Текстов индекс

MongoDB осигурява индексиране на текст, за да поддържа заявки в стринг формат. Текстовият индекс може да има всякакви полета, които се състоят от низови елементи или масив от низови елементи.
Пример: db.movies.find (($ text: ($ search: “tom hardy”))). В този пример ще намерите всички документи, които имат имена на актьори като Tom hanks, Tom Felton, Tom Hiddelson, както и Робърт Харди и Джон Харди. MongoDB приема низ, предоставен за търсене и дава всички документи, които имат пълен или частичен низ за търсене в него.

7. Хеширан индекс

MongoDB използва хеширан индекс, за да подкрепи заточването. Хеширането на индекси изчислява хеш стойността на индексните полета с помощта на хеш функция. Не поддържа индексиране на много ключове (стойности на масив). Hash индексите се създават с помощта на createIndex функция и стойността на индексното поле винаги трябва да бъде „хеширана“.

Пример: db.collection.createIndex ((: "хеширан")) . За да намерите документите със хеш стойности, db.collection.find ((: Math.pow (2, 63))) ще върне всички документи с хеш индекси в диапазона 2 63.

Опции за индексиране

1. Уникален индекс

Както подсказва името, уникалните индекси са уникални по своята същност. MongoDB не позволява дублиращи се стойности, ако индексът е създаден с помощта на „уникалната“ опция. За да уточните, че индексът е уникален по време на създаването на индекса, следва да се използва следния формат.

db.collection.createIndex (, (unique: true)) . Уникалните ограничения могат да бъдат наложени и на сложния индекс, индекс с много клавиши и текстов индекс.

2. Частичен индекс

Частични индекси индексират документи на колекция въз основа на конкретен филтър или израз. Тъй като частичните индекси индексират, само подгрупа от изискванията за пространство за събиране (памет) са по-малко и това също води до намалена производителност.

Пример :

db.pupils.createIndex ((име: 1), (частиченFilterExpression: (age: ($ gt: 5)))
Поддържани филтриращи изрази:

  • $ gt, $ gte, $ lt, $ lte (по-голямо, по-голямо или равно, по-малко и по-малко или равно)
  • $ тип оператори
  • $ съществува: истинска операция
  • Оператор за равенство ($ eq)
  • Логически и или операции

3. TTL индекс

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

Пример:

db.log.createIndex ((“lastModifiedDate”: 1), (expireAfterSeconds: 10000))

4. Ръчен индекс

Редки индекси индексират само документите, които съдържат полевата стойност на индекса. Той игнорира всички останали документи, които не съдържат полето. По подразбиране неспецифичните индекси съдържат всички документи в колекциите, като null е стойността за тези полета, които не присъстват.

Пример:

db.pupil.createIndex ((„възраст“: 1), (sparse: true))
Индексът не индексира документи, които не съдържат възрастта на полето.

5. Индекс на нечувствителност към случая

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

Пример:

db.collection.createIndex ((“ключ”: 1), (collation:))

Подреждане:

Документът за съпоставяне се използва за определяне на езикови правила, букви и т.н. … за сравняване на низове.

Документите за събиране се състоят от следното:

Заключение - MongoDB създава индекс

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

Препоръчителни статии

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

  1. MongoDB инструменти
  2. Какво е MongoDB?
  3. Репликация в MongoDB
  4. Предимства на MongoDB