Официальный сайт предоставляет пакеты дистрибутивов для различных платформ: Windows, Linux, MacOS, Solaris. И каждой платформы доступно несколько дистрибутивов. Причем есть два вида серверов - бесплатный Community и платный Enterprise. В данном руководстве будем использовать бесплатную версию Community.
Для установки MongoDB загрузим один распространяемых пакетов с официального сайта https://www.mongodb.com/try/download/community.
Для загрузки всех необходимых файлов выберем нужную операционную систему и подходящий тип пакета. Рассмотрим на примере установки на ОС Windows.
MongoDB можно загрузить в ряде вариантов. Так, для Windows доступна загрузка установщика msi и также доступна загрузка архива zip. В реальности нам достаточно загрузить zip-архив и распаковать в нужной нам папке. Поэтому выберем этот вариант загрузки (хотя также можно выбрать вариант установщика msi):
Если до установки уже была установлена более ранняя версия MongoDB, то ее необходимо удалить.
После загрузки архивного пакета распакуем его в папку C:\mongodb.
Если после установки мы откроем папку bin в распакованном архиве (C:\mongodb\bin), то сможем найти там кучу приложений, которые выполняют определенную роль. Вкратце рассмотрим их.
mongod: сервер баз данных MongoDB. Он обрабатывает запросы, управляет форматом данных и выполняет различные операции в фоновом режиме по управлению базами данных
mongos: служба маршрутизации MongoDB, которая помогает обрабатывать запросы и определять местоположение данных в кластере MongoDB
После установки надо создать на жестком диске каталог, в котором будут находиться базы данных MongoDB.
В ОС Windows по умолчанию MongoDB хранит базы данных по пути C:\data\db, поэтому, если вы используете Windows, вам надо создать соответствующий каталог.
Если же возникла необходимость использовать какой-то другой путь к файлам, то его можно передать при запуске MongoDB во флаге
--dbpath
.
Итак, после создания каталога для хранения БД можно запустить сервер MongoDB. Сервер представляет приложение mongod, которое находится в каталоге bin в папке сервера. Для этого запустим терминал/командную строку и там введем соответствующие команды. Для ОС Windows это будет выглядеть так:
Командная строка отобразит нам ряд служебной информации, например, что сервер запускается на localhost на порту 27017.
И после удачного запуска сервера мы сможем производить операции с бд через клиент.
Выше мы установили сервер MongoDb. Однако для работы с сервером нам нужен клиент. Наиболее простым клиентом в данном случае является MongoDB Shell или mongosh - консольная оболочка для отправки запросов к серверу, которая также предоставляется непосредственно компанией MongoDB.
Для установки клиента перейдем по адресу https://www.mongodb.com/try/download/shell
Здесь опять же мы можем выбрать версии клиента для разных операционных систем. Для Windows пакет клиента доступен в виде архива zip. Загрузим этот пакет и распакуем его в папку C:\mongosh.
Если в распакованном архиве мы зайдем в папку bin (то есть C:\mongosh\bin), то обнаружим там консольную утилиту mongosh, которая будет применяться для работы с сервером MongoDB:
Используем выше установленное клиентское приложение mongosh для взаимодействия с сервером mongodb. (При работе с mongosh не стоит забывать, что у нас должен быть запущен сервер mongod). Итак, запустим файл mongosh, который располагается в выше рассмотренной папке установки:
При запуске программы mongosh вначале она спросит пользователя, какую строку подключения использовать для подключения к серверу MongoDB. В этом моменте просто нажмем на Enter,
чтобы использовать строку подключения к MongoDB по умолчанию. А по умолчанию сервер mongodb запускается на порту 27017,
а полная строка подключения выглядит следующим образом: mongodb://localhost:27017
или mongodb://127.0.0.1:27017
После подключения консоль отобразит ряд служебной информации и подключится к базе данных test.
Теперь поизведем какие-либо простейшие действия. Введем в консоль последовательно следующие команды и после каждой команды нажмем на Enter:
db.users.insertOne( { name: "Tom" } ) db.users.find()
С помощью функции db.users.insertOne() в коллекцию users базы данных test добавляется объект { name: "Tom" }
.
Идентификатор db представляет текущую базу данных. В нашем случае мы подключены к базе данных по умолчанию - то есть к базе данных test,
соответственно db
здесь представляет базу данных test. При этом не важно, есть или нет такая бд - если ее нет, то она создается
После db идет users - это коллекция, в которую затем мы добавляем новый объект. Если в SQL нам надо создавать таблицы заранее, то коллекции MongoDB создает самостоятельно при их отсутствии.
Описание добавляемого объекта определяется в формате, с которым вы возможно знакомы, если имели дело с форматом JSON. То есть в данном случае у объекта определен один ключ "name", которому сопоставляется значение "Tom". То есть мы добавляем пользователя с именем Tom.
Если объект был успешно добавлен, то консоль выведет результат операции, в частности, идентификатор добавленного объекта.
А вторая команда db.users.find() выводит на экран все объекты из бд test.
Из вывода вы можете увидеть, что к начальным значениям объекта было добавлено какое-то непонятно поле ObjectId.
Как вы помните, MongoDB в качестве уникальных идентификаторов документа использует поле _id
. И в данном случае ObjectId как
раз и представляет значение для идентификатора _id.
В дальнейшем в рамках данного руководства мы будет рассматривать взаимодействие с сервером MongoDB преимущественно через выше использованную оболочку mongo. Однако, мы также можем взаимодействовать с mongodb в наших приложениях, написанных на PHP, C++, C# и других языках программирования. И для этой цели необходим специальный драйвер.
На офсайте на странице https://docs.mongodb.com/ecosystem/drivers/ можно найти список драйверов для всех поддерживаемых языков программирования, в частности, для PHP, C, C++, C#, Java, Go, Python, Rust, Ruby, Scala, Swift, а также для Node.js.
Работа с драйверами на конкретных языках программирования будет рассмотрена в соответствующих разделах, посвященных этим языкам..