Как установить mongodb
Перейти к содержимому

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

  • автор:

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

Официальный сайт предоставляет пакеты дистрибутивов для различных платформ: Windows, Linux, MacOS, Solaris. И каждой платформы доступно несколько дистрибутивов. Причем есть два вида серверов — бесплатный Community и платный Enterprise. В данном руководстве будем использовать бесплатную версию Community.

Для установки MongoDB загрузим один распространяемых пакетов с официального сайта https://www.mongodb.com/try/download/community.

Для загрузки всех необходимых файлов выберем нужную операционную систему и подходящий тип пакета. Рассмотрим на примере установки на ОС Windows.

MongoDB можно загрузить в ряде вариантов. Так, для Windows доступна загрузка установщика msi и также доступна загрузка архива zip . В реальности нам достаточно загрузить zip-архив и распаковать в нужной нам папке. Поэтому выберем этот вариант загрузки (хотя также можно выбрать вариант установщика msi ):

Установка MongoDB

Если до установки уже была установлена более ранняя версия MongoDB, то ее необходимо удалить.

После загрузки архивного пакета распакуем его в папку C:\mongodb .

Если после установки мы откроем папку bin в распакованном архиве ( C:\mongodb\bin ), то сможем найти там кучу приложений, которые выполняют определенную роль. Вкратце рассмотрим их.

Каталог MongoDB

  • mongod : сервер баз данных MongoDB. Он обрабатывает запросы, управляет форматом данных и выполняет различные операции в фоновом режиме по управлению базами данных
  • mongos : служба маршрутизации MongoDB, которая помогает обрабатывать запросы и определять местоположение данных в кластере MongoDB

Создание каталога для БД и запуск MongoDB

После установки надо создать на жестком диске каталог, в котором будут находиться базы данных MongoDB.

В ОС Windows по умолчанию MongoDB хранит базы данных по пути C:\data\db , поэтому, если вы используете Windows, вам надо создать соответствующий каталог.

Если же возникла необходимость использовать какой-то другой путь к файлам, то его можно передать при запуске MongoDB во флаге —dbpath .

Итак, после создания каталога для хранения БД можно запустить сервер MongoDB. Сервер представляет приложение mongod , которое находится в каталоге bin в папке сервера. Для этого запустим терминал/командную строку и там введем соответствующие команды. Для ОС Windows это будет выглядеть так:

Запуск сервера MongoDB mongod

Командная строка отобразит нам ряд служебной информации, например, что сервер запускается на localhost на порту 27017.

И после удачного запуска сервера мы сможем производить операции с бд через клиент.

Установка клиента Mongosh

Выше мы установили сервер MongoDb. Однако для работы с сервером нам нужен клиент. Наиболее простым клиентом в данном случае является MongoDB Shell или mongosh — консольная оболочка для отправки запросов к серверу, которая также предоставляется непосредственно компанией MongoDB.

Установка клиента MongoDB Shell

Здесь опять же мы можем выбрать версии клиента для разных операционных систем. Для Windows пакет клиента доступен в виде архива zip. Загрузим этот пакет и распакуем его в папку C:\mongosh .

Если в распакованном архиве мы зайдем в папку bin (то есть C:\mongosh\bin ), то обнаружим там консольную утилиту mongosh , которая будет применяться для работы с сервером MongoDB:

Каталог клиента MongoDB Shell

Подключение к серверу из клиента

Используем выше установленное клиентское приложение mongosh для взаимодействия с сервером mongodb. (При работе с mongosh не стоит забывать, что у нас должен быть запущен сервер mongod). Итак, запустим файл mongosh , который располагается в выше рассмотренной папке установки:

Запуск оболочки MongoDB Shell 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.

Добавление в бд MongoDB

Из вывода вы можете увидеть, что к начальным значениям объекта было добавлено какое-то непонятно поле ObjectId . Как вы помните, MongoDB в качестве уникальных идентификаторов документа использует поле _id . И в данном случае ObjectId как раз и представляет значение для идентификатора _id.

Установка драйверов MongoDB

В дальнейшем в рамках данного руководства мы будет рассматривать взаимодействие с сервером 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.

Работа с драйверами на конкретных языках программирования будет рассмотрена в соответствующих разделах, посвященных этим языкам..

Install MongoDB

MongoDB is available in two server editions: Community and Enterprise.

Note

MongoDB Atlas

MongoDB Atlas is a hosted MongoDB service option in the cloud which requires no installation overhead and offers a free tier to get started.

This section of the manual contains information on installing MongoDB.

  • For instructions on upgrading your current deployment to MongoDB 7.0, see Upgrade Procedures instead.
  • For instructions on upgrading to the latest patch release for your current version, see Upgrade Procedures instead.

MongoDB Installation Tutorials

MongoDB installation tutorials are available for the following platforms, for both the Community Edition and the Enterprise Edition :

Установка MongoDB в Ubuntu 20.04

Установка MongoDB в Ubuntu 20.04

MongoDB (или Mongo) — это документоориентированная база данных с открытым исходным кодом, используемая во многих современных веб-приложениях. Она относится к базам данных типа NoSQL, поскольку не опирается на традиционную табличную структуру реляционных баз данных.

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

В этом руководстве мы установим MongoDB на сервере Ubuntu 20.04, протестируем ее и узнаем, как управлять ею как службой systemd .

Предварительные требования

Для данного обучающего модуля вам потребуется следующее:

  • Один сервер Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить настройку, следуя указаниям руководства Начальная настройка сервера для Ubuntu 20.04.

Шаг 1 — Установка MongoDB

Официальные репозитории пакетов Ubuntu включают стабильную версию MongoDB. Однако на момент написания этого документа версия MongoDB, доступная в репозиториях Ubuntu по умолчанию, — это версия 3.6 , в то время как последний стабильный выпуск — это версия 4.4 .

Чтобы получить самую последнюю версию этого программного обеспечения, вам нужно добавить выделенный репозиторий пакетов MongoDB в ваши источники APT. Теперь вы сможете установить mongodb-org , метапакет, который всегда указывает на последнюю версию MongoDB.

Для начала импортируйте публичный ключ GPG для последней стабильной версии MongoDB. Вы можете найти соответствующий файл ключа на сервере ключей MongoDB. Вам нужно найти файл, который включает номер последней стабильной версии и заканчивается на .asc . Например, если вы хотите установить MongoDB версии 4.4, необходимо искать файл с именем server-4.4.asc.

Нажмите правой кнопкой мыши на файл и выберите опцию Copy link address (Скопировать адрес ссылки). Затем вставьте эту ссылку в следующую команду curl , заменив выделенный URL:

cURL — это инструмент командной строки, который доступен во многих операционных системах и используется для передачи данных. Он читает все данные, хранящиеся в переданном URL, и выводит содержание в вывод системы. В следующем примере cURL выводит содержание файла ключа GPG, а затем вводит его в команду sudo apt-key add — , добавляя ключ GPG в ваш список доверенных ключей.

Также обратите внимание, что команда curl использует опции -fsSL , которые вместе указывают cURL не выполнять скрипт без каких-либо обязательств. Это означает, что, если по какой-либо причине cURL не может связаться с сервером GPG, либо сервер GPG не работает, он не добавит полученный код ошибки к вашему списку доверенных ключей случайно.

Эта команда покажет вывод OK , если ключ добавлен успешно:

Output
OK

Если вы хотите еще раз убедиться, что ключ добавлен корректно, вы можете сделать это, выполнив следующую команду:

Эта команда возвращает ключ MongoDB в выводе:

Output
/etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key . . .

На этом этапе ваша система APT все еще не знает, где искать пакет mongodb-org , который необходим для установки последней версии MongoDB.

На вашем сервере есть два места, где APT ищет онлайн-источники пакетов для загрузки и установки: файл sources.list и каталог sources.list.d . sources.list — это файл, который перечисляет активные источники данных APT (по одному источнику в строке, наиболее предпочтительные указываются первыми). Каталог sources.list.d позволяет добавлять такие записи sources.list в качестве отдельных файлов.

Запустите следующую команду, которая создает файл в каталоге sources.list.d под именем mongodb-org-4.4.list . В этом файле содержится только одна строка: deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse :

    echo«deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse»|sudotee /etc/apt/sources.list.d/mongodb-org-4.4.list

Эта единственная строка указывает APT все, что необходимо знать об источнике, и где его найти:

  • deb : означает, что источник ссылается на обычную архитектуру Debian. В других случаях эта часть строки может выглядеть как deb-src . Это означает, что источник представляет исходный код дистрибутива Debian.
  • [ arch=amd64,arm64 ] : указывает, в какие архитектуры загружать данные APT. В данном случае это архитектуры amd64 и arm64 .
  • https://repo.mongodb.org/apt/ubuntu : это URI, представляющий местоположение данных APT. В данном случае URI указывает на адрес HTTPS, где находится официальный репозиторий MongoDB.
  • focal/mongodb-org/4.4 : репозитории Ubuntu могут содержать несколько разных выпусков. Это означает, что вам нужна только версия 4.4 пакета mongodb-org , доступная для выпуска Ubuntu focal («Focal Fossa» — это кодовое название Ubuntu 20.04).
  • multiverse : эта часть указывает APT на один из четырех основных репозиториев Ubuntu. В данном случае — на репозиторий multiverse .

После запуска этой команды обновите локальный индекс пакетов вашего сервера, чтобы APT знал, где найти пакет mongodb-org :

После этого вы можете установить MongoDB:

При появлении запроса нажмите Y , а затем ENTER , чтобы подтвердить, что вы хотите установить пакет.

После завершения выполнения команды MongoDB будет установлена на вашей системе. Однако она еще не готова к использованию. На следующем шаге мы запустим MongoDB и убедимся, что она работает корректно.

Шаг 2 — Начало работы службы MongoDB и тестирование базы данных

Процесс установки, описанный на предыдущем шаге, автоматически настраивает MongoDB для запуска в качестве демона с помощью systemd , а это означает, что вы можете управлять MongoDB, используя различные команды systemctl . Но данная процедура установки не запускает службу автоматически.

Выполните следующую команду systemctl , чтобы запустить службу MongoDB:

Затем проверьте статус службы. Обратите внимание, что эта команда не включает .service в определение служебного файла. systemctl будет автоматически добавлять этот суффикс для любого аргумента, который вы передаете, если он еще не присутствует, поэтому нет необходимости включать его:

Эта команда возвращает вывод, аналогичный следующему, указывая на то, что служба запущена и работает:

Output
● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf

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

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

connectionStatus проверяет и возвращает статус подключения базы данных. Значение 1 поля ok в ответе означает, что сервер работает нормально:

Output
MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session < "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") >MongoDB server version: 4.4.0 < "authInfo" : < "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] >, "ok" : 1 >

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

На следующем шаге мы рассмотрим, как управлять экземпляром сервера MongoDB с помощью systemd .

Шаг 3 — Управление службой MongoDB

Как уже упоминалось ранее, процесс установки, описанный в шаге 1, настраивает MongoDB для работы в качестве службы systemd . Это означает, что вы можете управлять ею, используя стандартные команды systemctl , используемые для работы с другими службами системы Ubuntu.

Как уже упоминалось ранее, команда systemctl status проверяет статус службы MongoDB:

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

Чтобы запустить службу после остановки, введите команду:

Также вы можете перезапустить сервер, когда он уже работает:

На шаге 2 вы установили активацию MongoDB автоматически при загрузке сервера. Если вы хотите отключить автоматический запуск, введите:

Для повторной установки активации при загрузке запустите команду enable снова:

Дополнительную информацию о том, как управлять службами systemd , можно найти в статье Основы работы с Systemd: работа со службами, блоками и журналом.

Заключение

В ходе выполнения этого обучающего руководства вы добавили официальный репозиторий MongoDB в ваш экземпляр APT и установили последнюю версию MongoDB. Затем вы протестировали функциональность Mongo и попробовали использовать некоторые команды systemctl .

В качестве непосредственного следующего шага мы настоятельно рекомендуем вам усилить защиту системы MongoDB с помощью нашего руководства Обеспечение безопасности MongoDB в Ubuntu 20.04. После того как вы обеспечили безопасность системы, вы можете настраивать MongoDB для удаленного подключения.

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

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

MongoDB – бесплатная документо-ориентированная база данных, которая классифицируется как база NoSQL, поскольку основой её является не традиционная реляционная структура базы данных. MongoDB, вместо этого, использует JSON-подобные документы с динамическими схемами. В отличие от реляционных баз, MongoDB не требует наличия заранее созданной схемы перед тем, как внести данные в БД. Вы имеете возможность изменять схему в любой момент, и так часто, как это может потребоваться, без необходимости устанавливать новую базу данных с обновлённой схемой. В этом руководстве вы увидите, как можно установить MongoDB на CentOS Stream.

Добавление репозитория MongoDB

Официальный репозиторий CentOS Stream не содержит пакет установщика mongodb-org . Но, тем не менее, MongoDB поддерживает свой специализированный репозиторий. Поэтому, первым шагом настоящего мануала будет добавление данного репозитория на ваш сервер.

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

Зарегистрируйтесь в системе с помощью учётной записи такого пользователя, и при помощи текстового редактора vi создайте файл .repo :

$ cd /etc/yum.repos.d $ sudo vi mongodb-org.repo

В этот файл вставьте следующие строки:

[mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

На настоящий момент актуальная версия MongoDB – 4.4. Перед запуском установки вы можете перейти на страницу MongoDB и проверить номер последней версии (в вашем случае он уже может быть другим).

После завершения редактирования файла закройте его сохранив изменения.

Установка и запуск MongoDB

Теперь, когда всё готово для установки, запустите инсталляцию пакета MongoDB:

$ sudo yum install -y mongodb-org

Завершение инсталляцию пакета MongoDB

По завершении установки, необходимо запустить сервис MongoDB:

$ sudo systemctl start mongod

Проверить состояние запущенной службы можно командой:

$ sudo systemctl status mongod

Проверка состояния службы MongoDB

Если есть необходимость сервис MongoDB можно остановить:

$ sudo systemctl stop mongod
$ sudo systemctl restart mongod

Запуск оболочки MongoDB производится командой:

$ mongo

Запуск оболочки MongoDB

Приглашение ко вводу команд в оболочке MongoDB выглядит как знак > .

Чтобы узнать больше о том, как взаимодействовать с оболочкой MongoDB, используйте метод db.help() . Его выводом является список методов, которые используются в MongoDB для взаимодействия с объектами баз данных:

Список методов MongoDB - Как установить MongoDB на CentOS Stream

Выход из оболочки осуществляется командой exit .

Проверка автозапуска

Из-за того, что приложения, управляющие базами данных, не могут функционировать без самих баз данных (а MongoDB определённо к ним относится), необходимо быть уверенным, что демон MongoDB запускается вместе с запуском системы.

Для проверки автозапуска службы MongoDB используйте команду:

$ systemctl is-enabled mongod; echo $?

Вывод команды должен выглядеть как:

Проверка автозапуска MongoDB

В данном случае, 0 свидетельствует о том, что демон запущен. Если вместо 0 в выводе присутствует 1 , то демон MongoDB необходимо запустить:

$ sudo systemctl enable mongod

Выполнение этой команды включает автозапуск демона MongoDB.

Импорт примерного набора данных

В отличие от других СУБД, MongoDB не имеет в своём арсенале тестовой базы. Поэтому, если вы хотите опробовать функционал системы не затрагивая данные, находящиеся в работе, вы можете скачать образец набора данных со специальной страницы MongoDB. Скачанный документ в формате JSON, в котором содержится список ресторанов, вы можете использовать для изучения взаимодействия с базой, избегая причинения вреда “боевым” данным.

Для начала перейдите во временную директорию:

$ cd /tmp

И теперь, при помощи команды curl подключитесь к соответствующей странице MongoDB и скачайте JSON-файл:

$ curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

Получение данных из JSON-файла - Как установить MongoDB на CentOS Stream

Далее, с помощью команды mongoimport вставьте полученные данные в базу данных, которая называется test . В этой инструкции опция —db указывает на базу данных, которую необходимо использовать, опция —collection указывает, где в базе данных будет сохранена информация, и опция —file указывает, какой файл будет использован для импорта:

$ mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json

Вывод команды должен выглядеть примерно так:

Импорт данных

Теперь можно попробовать выполнить запрос к данным тестовой базы. Для чего подключитесь к оболочке MongoDB:

$ mongo

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

С помощью метода find() вы можете вывести на просмотр коллекцию restaurants . Коллекция содержит список всех ресторанов в этом наборе данных. Так как в списке более 25 тысяч записей, вы можете использовать метод limit() , чтобы уменьшить вывод запроса до определённого числа записей. Дополнительно, вы можете использовать метод pretty() , который позволяет предоставлять информацию в более читабельном формате:

> db.restaurants.find().limit( 1 ).pretty()

Запрос к коллекции данных - Как установить MongoDB на CentOS Stream

Также, вы можете продолжить использовать эти данные для того, чтобы поближе познакомиться с MongoDB, применяя другие методы. Для удаления набора данных, используйте метод db.restaurants.drop() :

> db.restaurants.drop()

Для того, чтобы выйти из оболочки, наберите:

> exit

Заключение

В данном руководстве мы узнали как установить MongoDB на CentOS Stream. А именно, мы добавили в систему репозиторий, установили СУБД MongoDB, импортировали образец набора данных и рассмотрели выполнение простейших запросов. Мы лишь поверхностно коснулись функционала MongoDB. Так что, теперь вы можете самостоятельно создать свою базу данных и наполнить её своими коллекциями необходимых записей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *