Руководство по базам данных MongoDB

MongoDB — это кроссплатформенная система управления базами данных, разработанная с целью хранения документов. Она входит в топ-10 аналогичных продуктов в мире. А её популярность объясняется удобством использования и открытым ПО.

В этой статье мы рассмотрим, как выполняется установка MongoDB, познакомимся с её концепцией, основными командами и запросами.

Терминология

Начать знакомство с продуктом стоит с 3 ключевых определений.

  1. Документы.

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

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

Отдельно выделяется термин первичный ключ. По аналогии с реляционными СУБД он описывает один столбец с уникальным значением. У каждого документа есть id — это шестнадцатеричное число, в котором 12 байтов. В них зашифрованы метка времени, идентификаторы компьютера и процесса на сервере. Если не указывать его вручную, MongoDB присваивает его автоматически.

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

  1. Коллекции.

Так называют набор документов. Их можно сравнить с привычными таблицами в СУБД. Только в них могут размещаться объекты, отличающиеся друг от друга структурой и свойствами.

  1. База данных.

По сути, это физический контейнер для коллекций. В каждой из них свой набор файлов в файловой системе.

Особенность MongoDB заключается в возможности разместить несколько БД на разных серверах. Они способны обмениваться данными и сохранять целостность.

Особенности и преимущества MongoDB

Реляционная база данных всегда показывает количество таблиц и связи между ними. А в MongoDB таких связей нет. Поэтому в работе она довольно специфична. У неё отсутствуют сложные соединения и традиционная схема, за счёт чего сохраняется простая, логичная структура.

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

База данных MongoDB характеризуется лёгкой масштабируемостью. Не нужно преобразовывать объекты приложения в объекты базы данных.

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

Как установить MongoDB

Для начала нужно последнюю версию MongoDB скачать с официального сайта разработчика и следовать инструкциям. Для этого придётся заполнить форму, а после ввода данных перейти на вкладку «Server».

Для хранения файлов необходимо создать каталог, по умолчанию она расположен на c:\data\db. Для этого нужно вводить команду.

C:\>md data

C:\md data\db

В mongod.exe указываем путь к новому каталогу dbpath. Затем в командной строке переходим к директории bin. Рассмотрим процесс на стандартном пути C:\Program Files\MongoDB (вы можете выбрать другой).

C:\Users\XYZ>d:cd C:\Program Files\MongoDB\Server\4.2\bin

C:\Program Files\MongoDB\Server\4.2\bin>mongod.exe --dbpath "C:\data"

Консоль сообщит об ожидании соединения. Это значит, что всё сделано правильно. Теперь нужно запустить MongoDB. Для выполнения этой задачи используется другая командная строка, где нужно ввести следующие строки.

C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe

MongoDB shell version v4.2.1

connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb

Implicit session: session { "id" : UUID("4260beda-f662-4cbe-9bc7-5c1f2242663c") }

MongoDB server version: 4.2.1

>

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

C:\Program Files\MongoDB\Server\4.2\bin>mongod.exe --dbpath "C:\data"

C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe

Для запуска MongoDB в Ubuntu необходимо 7 команд.

Импорт публичного ключа GPG MongoDB

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Создание файла

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

Обновление репозитория

sudo apt-get update

Установка

apt-get install mongodb-10gen = 4.2

Запуск

sudo service mongodb start

Завершение работы

sudo service mongodb stop

Возобновление сеанса

sudo service mongodb restart

Дополнительные команды можно узнать с помощью команды db.help(), которую нужно ввести в клиенте MongoDB. В ответ система выдаст подробный перечень.

MongoDB запросы

Этот термин подразумевает способ получения данных из базы данных MongoDB. Они похожи на SQL-запросы на языке баз данных SQL, то есть можно указывать критерии или условия.

Запрос Find

Метод find() показывает коллекцию базы данных в неструктурированной форме

({<Ключ> : <значение>})

При этом применяется автоматически созданный ключ, идентификатор. Так мы можем увидеть все присутствующие в коллекции документы.

Для поиска одного конкретного документа актуален другой метод – findOne()

db.collection_name.findOne ()

Метод pretty() показывает документы в форматированном, понятном и логичном виде.

db.имя_коллекции.find().pretty()

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

db.collection_name.find({<ключ > : {$эквалайзер: < значение >}})

Запросы с условием

Можно задавать конкретные числовые параметры.

db.collection_name.find({<ключ > : {$gte: < значение >}})

или

db.collection_name.find({<ключ > : {$lte: < значение >}})

Запросы в массивах

С помощью запросов можно выделять документы, которые соответствуют всем заданным выражениям в массиве.

db.collection_name.find({$и : [{<ключ> : {$эквалайзер: < значение1 >}}, {<ключ> : {$существует : <логическое значение >}}]})

Запросы с ограничением

Метод limit() нужен для указания максимального количества документов для возврата курсором. Например, если нужно ограничиться тремя запросами, строка будет выглядеть так.

db.artists.find( { albums: { $exists: false }} ).limit(3)

Регулярные выражения

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

Например, нам нужно найти информацию о сотруднике, имя которого начинается с буквы B. Запрос будет выглядеть так.

db.employee.find({Name:{$regex:"^B"}}).pretty()

Вывод

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

Установить и запустить MongoDB просто. А для использования команд и запросов необходимы навыки и знания в сфере информационных технологий. При этом специалистам будет легко разобраться в конфигурации и синтаксисе.

Всё ещё остались вопросы?