Статьи

Монго агрегаты и как объяснить агрегатные запросы

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

Mongo принадлежит к одной из тех баз данных NoSQL, которые нарушили работу интернета несколько лет назад. Все в отрасли говорили о них. Каждый хотел перенести свой стек в эти гибкие базы данных и говорил о том, как данные должны двигаться в этом направлении и так далее.

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

NoSQLэто широкий термин и состоит из множества моделей баз данных. Монго также является одним из них. Другие включают в себя Cassandra, Apache Sparkи многих других.

MongoDB — это распределенная база данных на основе документов. В производстве люди, как правило, запускают его с 3 репликами. 1 — хозяин, а два других — рабы. Это обеспечивает избыточность и высокую доступность данных.


Вы также можете быть заинтересованы в: 
Учебники и статьи по MongoDB: Полная коллекция

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

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

Mongoose — это библиотека, которая может помочь вам в этом. Это дает много преимуществ, таких как создание хуков и индексов для коллекций.

Кстати, таблицы эквивалентов в Mongo известны как, collectionsа строки строк известны как documents.

Монго Агрегаты

Агрегаты MongoDB упрощают запрос данных из любой коллекции. Это включает в себя такие вещи, как сопоставление, получение данных из других коллекций, выбор полей и многое другое.




Давайте обсудим некоторые из этих совокупных запросов.

Начиная Монго Агрегат

Вы можете запустить агрегат, используя следующий код:

db.collection.aggregate([aggregate pipeline commands], options)где collection — это имя коллекции, к которой применяется агрегат, а db — экземпляр подключенного объекта БД.

Ниже приведены команды, которые вы можете использовать в агрегатном конвейере.

Матч в Монго Агрегате

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

Это уменьшит количество документов, возвращаемых по запросу. Это также хороший вариант для индексации полей, в которых вы выполняете запрос на совпадение, чтобы быстрее возвращать результаты.

Например: В базе данных студентов вы можете сделать этот запрос следующим образом:

{ $match: { "roll_number": 901 }}

или

{ $match: { "class": 5 }}

Этот запрос вернет все документы, которые удовлетворяют данному запросу.

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

Примечание. Вы можете использовать поля, добавляя их $к имени полей всякий раз, когда вы хотите их использовать.

Используйте матч как можно раньше

Вы должны использовать $matchкак можно раньше, чтобы использовать indexes.

$matchОперации используют подходящие индексы для сканирования только соответствующих документов в коллекции. По возможности помещайте операторы $ match в начале конвейера.




Всегда пытайтесь объяснить $matchчасть ваших запросов и предпочитайте создавать составные индексы в соответствии с вашими запросами.

Проект в Монго Агрегате

Проект — это часть, в которой вы сообщаете запросу, какие ключи выбрать из данного документа.


JSON