Учебник по MongoDB: установка и настройка

Различные модели баз данных — SQL и NoSQL — довольно сильно отличаются друг от друга, когда дело доходит до настройки и использования. Но программное обеспечение с открытым исходным кодом MongoDB доказывает, что использование NoSQL-решения не обязательно означает отбрасывание многолетнего опыта, накопленного в области реляционных систем баз данных. Конечно, эта ориентированная на документы база данных с гибким хранением данных сильно отличается от классики вроде MySQL, но есть и много общего, о чем вы можете прочитать в нашем введении в MongoDB. Хотя язык запросов и синтаксис команд MongoDB требуют некоторого времени для ознакомления, у знатоков SQL не должно возникнуть проблем с освоением различий.

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

Шаг 1: установка

В центре загрузки официального сайта MongoDB вы можете найти как бесплатную версию с открытым исходным кодом ‘Community Server’, так и коммерческое корпоративное решение. Первый шаг — найти подходящий установочный файл (бинарный) для вашей системы и загрузить его. Поскольку MongoDB доступна для различных платформ, существует несколько различных вариантов для Windows и Linux, а также для OS X и Solaris.

Если вы используете операционную систему Windows, база данных просто устанавливается в выбранную вами папку с помощью загруженного файла. Пользователи Windows 10 могут использовать версию Windows Server 2008 (64-бит). Пользователям Linux и co. придется скачать архивный файл, разархивировать его и затем установить с помощью менеджера пакетов. В зависимости от вашего дистрибутива, сначала может потребоваться импортировать открытый GPG-ключ MongoDB. Для Ubuntu этот ключ аутентификации является обязательным, что означает, что вы должны выполнить следующую команду:

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

Затем следует обновить список менеджера пакетов:

sudo apt-get update

… и установить MongoDB с включенными полезными инструментами управления:

sudo apt-get install -y mongodb-org

Шаг 2: запуск сервера MongoDB

У вас есть возможность изменить стандартную папку установки /var/lib/mongodb и папку журнала /var/log/mongodb в конфигурационном файле/etc/mongod.conf. Следующая команда запустит базу данных:

sudo service mongod start

Если вы используете параметр stop вместо команды start, база данных будет закрыта; для перезагрузки базы данных можно использовать команду restart. Чтобы проверить, была ли MongoDB успешно запущена, просто просмотрите файл журнала /log/mongodb/mongod.log: Строка

[initandlisten] waiting for connections on port <port>

говорит о том, что сервер базы данных запущен и ожидает входящих соединений с портом, заданным в конфигурационном файле (<port>). По умолчанию используется порт 27017.

Шаг 3: запуск клиента

После того как сервер MongoDB запущен, можно запустить соответствующий клиент. Мы используем входящий в комплект клиент командной строки Mongo Shell, который основан на JavaScript и может быть использован для администрирования базы данных, а также для доступа к данным и их обновления. Вы можете запустить клиент с помощью простой команды терминала на той же системе, где запущено приложение MongoDB:

mongo

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

Параметр

Описание функции

—shell

Активирует интерфейс оболочки, где вы можете использовать интерактивную оболочку mongo после выполнения команды

—nodb

Отключает соединение между оболочкой Mongo Shell и базой данных

—port <port>

Определяет порт для соединения

—host <hostname>

Определяет хост для соединения

—help или -h

Показывает все возможные опции

—username <имя пользователя> или -u <имя пользователя>

Если права доступа определены, вы можете использовать эту команду для входа в систему с соответствующим именем пользователя (<username>)

—password <password> или -p <password>

Если права доступа определены, вы можете использовать эту команду для ввода соответствующего пароля (<password>).

Скобки, включенные здесь, не являются частью соответствующего параметра и поэтому не должны появляться в конечной команде. Например, при определении порта 40000 вместо стандартного порта 27017 ваша запись должна выглядеть следующим образом:

mongo --port 40000

Шаг 4: создание базы данных

Как только MongoDB и клиент запущены, вы можете посвятить свое время управлению и редактированию данных. Но сначала необходимо создать базу данных — иначе ваши коллекции и документы будут сохранены в автоматически созданной тестовой базе данных. Создать базу данных можно с помощью команды use. Если вы хотите создать базу данных, например, с именем mydatabase, то команда будет выглядеть следующим образом:

use mydatabase

Команда use также выбирает существующую базу данных MongoDB, которую вы хотите вызвать для обработки данных; с помощью короткой команды db вы можете проверить, какая база данных выбрана в данный момент.

Шаг 5: создание коллекции

Следующим шагом будет создание первой коллекции — связующего элемента для различных BSON-документов, в которых вы будете хранить данные в дальнейшем. Основной синтаксис выглядит следующим образом:

db.createCollection(<name>, { options } )

Команда createCollection содержит два параметра: name (название коллекции) и options (необязательные параметры для настройки коллекции). В опциях вы можете определить, должна ли коллекция быть ограничена в размере (capped: true), и если да, то каким количеством байт (size: <number>) или дополнительно каким количеством документов (max: <number>), например.

Коллекция с именем mycollection, ограничением на количество байт 6 142 800 и максимальным разрешенным количеством документов 10 000 может быть создана с помощью следующей команды (пробелы проставлены для ясности):

db.createCollection ("mycollection", { capped: true,
          size: 6142800,
          max: 10000 } )

Шаг 6: добавление документов в коллекцию

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

  • .insertOne()
  • .insertMany()
  • .insert()

Приведенные выше команды позволяют вставить либо один документ (.insertOne), либо несколько документов одновременно (.insertMany), либо просто вставить столько документов, сколько вы перечислите (.insert). В следующем примере показана простая запись в базе данных, содержащая три части информации: имя, возраст и пол. Этот документ будет храниться в связке mycollection, которую мы создали на шаге 5:

db.mycollection.insertOne(
{
    Name: "Name",
    Age: 28,
    Sex: "female"
  }
)

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

Шаг 7: управление документами

Последний шаг нашего учебника по MongoDB касается базового управления созданными документами. Прежде чем вносить изменения в документ, необходимо сначала вызвать его. Это действие можно выполнить с помощью команды find и расширить ее дополнительными параметрами query filter и projection (уточнение отображаемого результата). Итак, чтобы вызвать документ из предыдущего шага, нам понадобится следующая команда:

db.mycollection.find( { Name: "Name", Age: 28 } )

Если вы хотите обновить этот документ, вам нужно выполнить функцию update. Здесь нужно определить значение, которое вы хотите изменить, выбрать оператор обновления, а затем ввести новое значение. Так, если вы хотите изменить поле возраст в нашем примере, вам нужен оператор $set:

db.mycollection.update( 
{ Age: 28 },
{
  $set: { Age: 30 }
}
)

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

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

db.mycollection.remove()

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

db.mycollection.remove( { Age: 28 } )

удалит все записи для значения 28 в поле Возраст. Но вы также можете задать дополнительные параметры, указав базе данных удалить только первую запись, соответствующую этому описанию. Для этого используется так называемый параметр justOne (1):

db.mycollection.remove( { Age: 28 }, 1 )

Дополнительную информацию об администрировании пользователей, настройках безопасности, создании реплик или совместном использовании данных в нескольких системах можно найти в официальной документации на сайте mongodb.com, а также в более подробном учебнике по MongoDB на tutorialspoint.com.

Оцените статью
cdelat.ru
Добавить комментарий