Установка и начало работы с MongoDB на Mac OS

Последнее обновление: 24.11.2023

Для установки MongoDB на Mac OS рекомендуемым и при этом наиболее простым способом является применение пакетного менеджера homebrew. Поэтому для начала необходимо установить сам пакетный менеджер homebrew. Для этого в терминале необходимо выполнить команду

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Установка mongodb

После установки homebrew для установки mongodb введем в терминале следующую команду

brew tap mongodb/brew

И после этого введем в терминале еще одну команду:

brew install mongodb-community@7.0

Обратите внимание на цифры версии - mongodb-community@7.0. То есть в данном случае устанавливается версия 7.0 Community-выпуска Mongo. Но при необходимости можно изменить эти цифры и задать другую версию.

В процессе установки будут установлены следующие файлы:

  • mongosh: представляет консольный интерфейс для взаимодействия с базами данных, своего рода консольный клиент

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

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

Кроме того, при установке в зависимости от архитектуры компьютера (intel или arm) будут созданы следующие файлы и каталоги:

Файлы/Каталоги

Intel

Apple M1

Файл конфигурации

/usr/local/etc/mongod.conf

/opt/homebrew/etc/mongod.conf

Каталог логов

/usr/local/var/log/mongodb

/opt/homebrew/var/log/mongodb

Каталог баз данных

/usr/local/var/mongodb

/opt/homebrew/var/mongodb

Откроем файл конфигурации. Для архитектуры Intel x86-64 он выглядит примерно следующим образом:

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1, ::1
  ipv6: true

В частности, параметр path указывает на путь лога mongodb - mongo.log. Если вдруг по какой-то причине сервер mongodb не запускается или при запуске/работе сервера возникают какие-нибудь ошибки, то мы можем проверить файл лога, чтобы понять причину ошибок.

Другой важный параметр - dbPath устанавливает каталог, где располагаются базы данных. Например, в моем случае это каталог /usr/local/var/mongodb. Часто при запуске mongodb на MacOS может возникать ошибка доступа к каталогу баз данных, особенно в последних версиях MacOS. Поэтому важно, чтобы этот каталог был открыт как для чтения, так и для записи.

Чтобы проще было управлять базами данных, мы можем изменить путь к каталогу базм данных. Пусть в моем случае пусть это будет каталог /Users/eugene/Documents/mongodb (грубо говоря папка mongodb в папке документов)

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /Users/eugene/Documents/mongodb
net:
  bindIp: 127.0.0.1, ::1
  ipv6: true

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

Запуск MongoDB

Для запуска сервера MongoDB выполним в терминале следующую команду:

brew services start mongodb-community@7.0

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

brew services stop mongodb-community@7.0

Подключение к серверу MongoDB

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

mongosh
консольная оболочка mongosh для работы с базой данных MongoDB на Mac OS

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

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

use userdb
db.users.insertOne( { name: "Tom" } )
db.users.find()

Первая команда use userdb устанавливает в качестве используемой базу данных userdb. Даже если такой бд нет, то она создается автоматически. И далее db будет представлять текущую базу данных - то есть базу данных userdb. После db идет users - это коллекция, в которую затем мы добавляем новый объект. Если в SQL нам надо создавать таблицы заранее, то коллекции MongoDB создает самостоятельно при их отсутствии.

С помощью метода db.users.insertOne() в коллекцию users базы данных userdb добавляется объект { name: "Tom" }. Описание добавляемого объекта определяется в формате, с которым вы возможно знакомы, если имели дело с форматом JSON. То есть в данном случае у объекта определен один ключ "name", которому сопоставляется значение "Tom". То есть мы добавляем пользователя с именем Tom.

Если объект был успешно добавлен, то консоль выведет результат операции, в частности, идентификатор добавленного объекта.

А третья команда db.users.find() выводит на экран все объекты из бд test.

Начало работы с базой данных MongoDB на Mac OS

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

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850