MongoDB — это кроссплатформенная система управления базами данных, разработанная с целью хранения документов. Она входит в топ-10 аналогичных продуктов в мире. А её популярность объясняется удобством использования и открытым ПО.
В этой статье мы рассмотрим, как выполняется установка MongoDB, познакомимся с её концепцией, основными командами и запросами.
Начать знакомство с продуктом стоит с 3 ключевых определений.
Привычные всем базы данных хранят записи. В MongoDB вместо них расположены документы, что позволяет структурировать сложную информацию.
Документ выглядит, как парные наборы ключей и значений. В свою очередь, ключ является меткой, к которой привязана какая-либо часть данных.
Отдельно выделяется термин первичный ключ. По аналогии с реляционными СУБД он описывает один столбец с уникальным значением. У каждого документа есть id — это шестнадцатеричное число, в котором 12 байтов. В них зашифрованы метка времени, идентификаторы компьютера и процесса на сервере. Если не указывать его вручную, 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. Они похожи на SQL-запросы на языке баз данных SQL, то есть можно указывать критерии или условия.
Метод 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 просто. А для использования команд и запросов необходимы навыки и знания в сфере информационных технологий. При этом специалистам будет легко разобраться в конфигурации и синтаксисе.