MongoDB
Что такое MongoDB
MongoDB – популярная нереляционная система управления базами данных. Относится к так называемым NoSQL-СУБД – для работы с MongoDB не нужен SQL-подобный язык запросов. В отличие от SQL-СУБД, данные в MongoDB представлены не в таблицах, а в отдельных документах. В MongoDB структура данных слабо типизированна – в документ можно добавить любую информацию.
Таблицы реляционных СУБД содержат однородные данные о разных объектах, а документы в MongoDB – целостные объекты с неоднородными данными. Такой способ хранения информации эффективнее в определенных задачах: например, при хранении профиля пользователя социальной сети. В подобном проекте будет важнее быстро открыть профиль пользователя, нежели быстро отфильтровать всех однофамильцев.
В MongoDB документы хранятся в формате JSON, либо его бинарном надмножестве – BSON. JSON – текстовый формат хранения данных, который берет начало от языка JavaScript. По этой причине MongoDB часто используют в стеке, ориентированном на JavaScript – MEAN (MongoDB, Express.js, Angular.js, Node.js). Работа в стеке MEAN позволяет передавать данные с помощью REST API, не занимаясь их дополнительным преобразованием. Тем не менее, JSON является независимым форматом, который воспринимается большим количеством разных языков программирования – MongoDB поддерживает интеграцию со всеми языками, которые популярны в нише бэкенд-разработки.
Язык запросов MongoDB не менее функционален, чем SQL. Кроме команд, MongoDB позволяет использовать в качестве запросов функции на JavaScript, а также регулярные выражения. В зависимости от запроса, общие данные могут поступать из разных документов. Поэтому, MongoDB может выполнять те же функции, что и SQL-базы данных, но со своими преимуществами и недостатками.
MongoDB позволяет масштабировать проект до огромных размеров – к примеру, на этой СУБД работают популярные онлайн-игры. Данные масштабируются горизонтально с помощью шардинга – база данных разбивается на определенные части, которые задает администратор. Грамотное сегментирование позволяет равномерно распределить нагрузку между серверами, а также обеспечить быстрый доступ к необходимым данным.
Примеры эффективного использования MongoDB
- логирование событий различного вида;
- соцсети, онлайн-игры с профилями пользователей;
- фиксация вычислений нейросетей;
- текстовые блоги;
- база данных онлайн-кинотеатра;
- сервис, который предоставляет информацию.
Преимущества разработки на MongoDB
- возможность масштабирования без существенных изменений в структуре базы данных;
- пригодность для задач любого типа;
- благодаря гибкости хранения данных, базу данных удобно использовать при создании стартапа, для которого неясны направления развития.
Недостатки разработки на MongoDB
- менее эффективна при работе с четко структурированными данными;
- проще найти специалиста для поддержки реляционной СУБД;
- требует большего количества памяти в сравнении с реляционными СУБД.
Примеры сайтов с использованием MongoDB
- Разработчики компьютерных игр: Electronic Arts – ea.com.
- Консалтинговая компания: McKinsey & Company – mckinsey.com.
- Разработчики ПО: Atlassian – atlassian.com.
- Производители автомобилей: Mercedes-Benz – mercedes-benz.com.
- Финансовый конгломерат: Morgan Stanley – morganstanley.com.