Введение в MongoDB создать индекс

MongoDB используется сложным анализом данных, алгоритмами анализа данных для управления, изменения и организации данных, с которыми они работают. Данные, с которыми они имеют дело, огромны и требуют эффективной обработки. Индексы в СУБД помогают повысить производительность запросов, таких как выборка и обновление данных. Представьте себе коллекцию, в которой есть сотни документов. Чтобы найти документы, которые соответствуют определенному фильтру, MongoDB должен будет сопоставить фильтр со всеми документами, присутствующими в коллекции, что утомительно и требует много времени. Вместо индексации документов (полей) значительно сократится время поиска. В этой теме мы собираемся узнать о MongoDB создания индекса.

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

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

db.collectionName.createIndex(, )

КлючиКлючи - это документ, содержащий пару значений поля, где поле является ключом индекса, а значение является типом индекса.

Например, значение равно 1 для сортировки ключа индекса в порядке возрастания и -1 в порядке убывания

ПараметрыОпция (и) - это документ, который содержит набор опций, влияющих на создание индексов. Эти параметры не являются обязательными.

Типы индексов

Вот типы индексов, упомянутых ниже

1. Идентификатор по умолчанию

Каждый документ, представленный в коллекции Mongo, содержит индекс

по умолчанию называется «_id». Идентификатор объекта создается при создании документа, если отсутствуют значения индекса.

2. Одно поле

Индексирование выполняется для одного поля, а операция сортировки может быть восходящей или нисходящей, поскольку MongoDB может перемещаться в любом направлении.

Пример: db.collection.createIndex ((«age»: 1))

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

MongoDB поддерживает пользовательские индексы в нескольких полях. Порядок полей, указанных в составном индексе, довольно значительный. Порядок сортировки происходит слева направо, приоритет по отношению к первому полю, указанному в составных индексах, выше, чем у следующего.

Пример: db.collection.createIndex ((«age»: 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»))). В этом примере будут найдены все документы с именами актеров, такими как Том Хэнкс, Том Фелтон, Том Хидделсон, а также Роберт Харди и Джон Харди MongoDB принимает строку, предусмотренную для поиска, и предоставляет все документы, в которых есть полная или частичная строка поиска.

7. Хешированный индекс

MongoDB использует хешированный индекс для поддержки шардинга. Хеширующие индексы вычисляют значение хеш-функции полей индекса, используя хэш-функцию. Он не поддерживает многоключевую индексацию (значения массива). Хеш-индексы создаются с помощью функции createIndex, и значение поля индекса всегда должно быть «хешировано».

Пример: db.collection.createIndex ((: «hashed»)) . Чтобы найти документы с хеш-значениями, db.collection.find ((: Math.pow (2, 63))) вернет все документы с хеш-индексами в диапазоне 2 63.

Варианты индексирования

1. Уникальный индекс

Как следует из названия, уникальные индексы уникальны по своей природе. MongoDB не допускает дублирования значений, если индекс создается с использованием опции «уникально». Чтобы указать, что индекс является уникальным при создании индекса, следует использовать следующий формат.

db.collection.createIndex (, (unique: true)) . Уникальные ограничения также могут быть наложены на составной индекс, многопользовательский индекс и текстовый индекс.

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

Частичные индексы индексируют документы коллекции на основе определенного фильтра или выражения. Так как частичные индексы индексируют, только подгруппа требований пространства памяти (памяти) меньше, и это также приводит к снижению производительности.

Пример :

db.pupils.createIndex ((имя: 1), (partalFilterExpression: (age: ($ gt: 5)))
Поддерживаются выражения фильтра:

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

3. Индекс TTL

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

Пример:

db.log.createIndex ((«lastModifiedDate»: 1), (expireAfterSeconds: 10000))

4. Разреженный индекс

Разреженные индексы индексируют только те документы, которые содержат значение поля индекса. Он игнорирует все остальные документы, которые не содержат поля. По умолчанию не разреженные индексы содержат все документы в собраниях со значением NULL для тех полей, которые отсутствуют.

Пример:

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

5. Индекс без учета регистра

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

Пример:

db.collection.createIndex ((«ключ»: 1), (сопоставление:))

Упорядочение:

Сличительный документ используется для указания языковых правил, регистра букв и т. Д. Для сравнения строк.

Сопоставительные документы состоят из следующего:

Вывод - MongoDB создать индекс

В заключение, индексирование имеет решающее значение для более быстрого выполнения запросов и управления памятью. Индексы могут быть созданы, изменены в соответствии с требованиями пользователей и удалены, когда они не нужны.

Рекомендуемые статьи

Это руководство по созданию индекса MongoDB. Здесь мы обсуждаем типы индексов и варианты индексирования вместе с примерами. Вы также можете посмотреть следующую статью, чтобы узнать больше -

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