Последнее обновление: 14.11.2018
Для установки MongoDB загрузим один распространяемых пакетов с официального сайта https://www.mongodb.com/download-center/community .
Официальный сайт предоставляет пакеты дистрибутивов для различных платформ: Windows, Linux, MacOS, Solaris. И каждой платформы доступно несколько дистрибутивов. Причем есть два вида серверов - Community и Enterprise. В данном случае надо установить версию Community. Хотя Enterprise-версия обладает несколько большими возможностями, но она доступна только в триальном режиме или по подписке.
На момент написания данного материала последней версией платформы была версия 4.0.4 . Использование конкретной версии может несколько отличаться от применения иных версий платформы MongoDB.
Для загрузки нобходиомго функционала выберем нужную операционную систему и подходящий тип пакета:
Для ОС Windows можно выбрать тип пакета "ZIP", то есть загрузить сервер в виде архива.
Если до установки уже была установлена более рання версия MongoDB, то ее необходимо удалить и также необходимо удалить все равне созданные базы данных.
После загрузки архивного пакета распакуем его в папку C:\mongodb .
Если после установки мы откроем папку C:\mongodb\bin , то сможем найти там кучу приложений, которые выполняют определенную роль. Вкратце рассмотрим их.
bsondump : считывает содержимое BSON-файлов и преобразует их в читабельный формат, например, в JSON
mongo : представляет консольный интерфейс для взаимодействия с базами данных, своего рода консольный клиент
mongod : сервер баз данных MongoDB. Он обрабатывает запросы, управляет форматом данных и выполняет различные операции в фоновом режиме по управлению базами данных
mongodump : утилита создания бэкапа баз данных
mongoexport : утилита для экспорта данных в форматы JSON, TSV или CSV
mongofiles : утилита, позволяющая управлять файлами в системе GridFS
mongoimport : утилита, импорирующая данных в форматах JSON, TSV или CSV в базу данных MongoDB
mongorestore : позволяет записывать данные из дампа, созданного mongodump, в новую или существующую базу данных
mongos : служба маршрутизации MongoDB, которая помогает обрабатывать запросы и определять местоположение данных в кластере MongoDB
mongorestat : представляет счетчики операций с бд
mongotop : предоставляет способ подсчета времени, затраченного на операции чтения-записи в бд
После установки надо создать на жестком диске каталог, в котором будут находиться базы данных MongoDB.
В ОС Windows по умолчанию MongoDB хранит базы данных по пути C:\data\db , поэтому, если вы используете Windows, вам надо создать соответствующий каталог. В ОС Linux и MacOS каталогом по умолчанию будет /data/db .
Если же возникла необходимость использовать какой-то другой путь к файлам, то его можно передать при запуске MongoDB во флаге --dbpath .
Итак, после создания каталога для хранения БД можно запустить сервер MongoDB. Сервер представляет приложение mongod , которое находится в папке bin. Для этого запустим командную строку (в Windows) или консоль в Linux и там введем соответствующие команды. Для ОС Windows это будет выглядеть так:
Командная строка отобразит нам ряд служебной информации, например, что сервер запускается на localhost на порту 27017.
И после удачного запуска сервера мы сможем производить операции с бд через оболочку mongo . Эта оболочка представляет файл mongo.exe , который располагается в выше рассмотренной папке установки. Запустим этот файл:
Это консольная оболочка для взаимодействия с сервером, через которую можно управлять данными. Второй строкой эта оболочка говорит о подключении к серверу mongod.
Теперь поизведем какие-либо простейшие действия. Введем в mongo последовательно следующие команды и после каждой команды нажмем на Enter:
Use test db.users.save({ name: "Tom" }) db.users.find()
Первая команда use test устанавливает в качестве используемой базу данных test. Даже если такой бд нет, то она создается автоматически. И далее db будет представлять текущую базу данных - то есть базу данных test. После db идет users - это коллекция, в которую затем мы добавляем новый объект. Если в SQL нам надо создавать таблицы заранее, то коллекции MongoDB создает самостоятельно при их отсутствии.
С помощью метода db.users.save() в коллекцию users базы данных test добавляется объект { name: "Tom" } . Описание добавляемого объекта определяется в формате, с которым вы возможно знакомы, если имели дело с форматом JSON. То есть в данном случае у объекта определен один ключ "name", которому сопоставляется значение "Tom". То есть мы добавляем пользователя с именем Tom.
Если объект был успешно добавлен, то консоль выведет результа в виде выражения WriteResult({ "nInserted" : 1 }) .
А третья команда db.users.find() выводит на экран все объекты из бд test.
Из вывода вы можете увидеть, что к начальным значениям объекта было добавлено какое-то непонятно поле ObjectId . Как вы помните, MongoDB в качестве уникальных идентификаторов документа использует поле _id . И в данном случае ObjectId как раз и представляет значение для идентификатора _id.
Конечно, мы можем работать и через консоль mongo, добавляя и отображая объекты в бд. Но нам также было бы неплохо, если бы mongoDB взаимодействовала бы с нашими приложениями, написанными на PHP, C++, C# и других языках программирования. И для этой цели нам потребуются специальные драйверы.
На офсайте на странице https://docs.mongodb.com/ecosystem/drivers/ можно найти драйвера для таких языков программирования, как PHP, C++, C#, Java, Python, Perl, Ruby, Scala и др.
MongoDB популярная реализация не реляционной базы данных. Если в двух словах то базы данных бывают нескольких типов. Базы реляционного типа, самые популярные, хранят данные в записях таблицы которая состоит из столбцов и строк. MongoDB принадлежит к объектно-ориентированному типу.
Главное отличие этого типа в том что работа и хранение данных осуществляется с помощью объектов, точно так же как это делается в популярных объективно ориентированных языках программирования (C++, Java). В этой инструкции я расскажу как установить MongoDB в Ubuntu.
Так как программа не добавлена в официальный репозиторий Ubuntu, устанавливать будем из собственного репозитория MongoDB. Первым делом нужно интегрировать публичный ключ чтобы система нормально приняла пакет, для этого наберите в терминале:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
С помощью следующей команды создаем список файлов пакета:
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
Обновим базу данных локальных пакетов:
sudo apt-get update
И можно переходить к установке:
sudo apt-get install -y mongodb-org
Для начала запустим сервис командой:
sudo service mongod start
Все теперь можно запускать консольный клиент Mongo и начинать работать с базой данных.
Логи сервиса можно посмотреть в папке /var/log/mongodb, файлы баз данных - /var/lib/mongodb
Jun 25 2013
Решил познакомиться с базами данных типа NoSQL. Для знакомства решил выбрать MongoDB, т.к. выбрал именно эту СУБД потому что часто встречал её в статьях на различных блогах. Если что то решил, лучше не откладывать на долго, что собственно я и сделал. Любое знакомство с ПО начинается с его установки, о чём будет написано ниже. Устанавливать будем как службу Windows.
1. Для начало необходимо скачать дистрибутив с официального сайта: http://www.mongodb.org/downloads
2. После того как архив скачался, распаковываем его в директорию, к примеру g:\webservwe\mongodb (в этой директории должна располагаться директория bin)
3. Для файлов БД создаём директорию data (g:\webservwe\mongodb\data)
4. В директории g:\webservwe\mongodb создаём файл mongod.cfg со следующим содержанием:
Logpath=g:\webserver\mongodb\log\mongo.log dbpath=G:\webserver\mongodb\data
5. В командной строке, запущенной от имени администратора выполняем следующую команду:
G:\webserver\mongodb\bin\mongod.exe –config G:\webserver\mongodb\mongod.cfg –install
6. И наконец проверка работы:
Запускаем клиент mongo.exe и прописываем следующие команды:
Db.test.save({ a: 1 }) db.test.find()
На экране должно отобразиться что то подобное:
{ "_id" : ObjectId("51c89ca80db214128714caca"), "a" : 1 }
MongoDB - это система управления базами данных, которая значительно отличается от MySQL. Основная разница заключается в том, что в MySQL запросы пишутся на языке SQL, а в MongoDB на BSON (бинарный JSON). Это значит, что работа с этой системой может осуществляться в основном через JavaScript выражения.
Также MongoDB включает в себя собственную утилиту для выполнения команд, направленных на работу с БД. В данном цикле статей, мы затронем следующие темы:
Разработчикам не составляет труда быстро освоить работу с Mongo, если они знакомы с JSON. Этот формат использует выражения, которые состоят из пар “ключ”: “значение”.
Между не табличными СУБД многие пользователи делают выбор в пользу MongoDB. Во-первых, данную систему можно установить практически на всех операционных системах (Windows, OSX, Linux). Во-вторых, проект до сих пор активно развивается и с завидной частотой команда разработчиков публикует обновления. Также мне кажется, что MongoDB предоставляет хорошую документацию для начинающих.
MongoDB лучше подходит в тех случаях, когда таблицы можно представить в виде объектов. По-моему, подобные системы лучше использовать при разработке приложений для мобильный устройств. В этом плане, Mongo предоставляет отдельные библиотеки, как для iOS, так и для Adndroid-а.
Ещё один весомый аргумент в пользу MongoDB: работать с данной системой можно на многих языках программирования, таких как C/C++, Python, PHP, Rubym Perl, .NET и даже Node.js.
MongoDB - это реальное решение, если вы хотите отступить от SQL и попробовать что-то новенькое.
Перед тем как приступить к установке MongoDB, давайте разберёмся с основными понятиями.
Как и MySQL, MongoDB может содержать множество баз данных, только вместо таблиц они содержат “коллекции”.
Коллекция - это что-то типа таблицы, только без колонок. Вместо этого каждая строка содержит наборы записей в виде ключ:значение.
Пример:
Внутри коллекции Users (пользователи) может располагаться запись с ключами firstname (имя) и lastname (фамилия). В то же время, та же коллекция может содержать запись с другими ключами: firstname, lastname, e-mail, birth (день рождения). В этом-то и заключается гибкость MongoDB.
Каждая из этих записей, или строк, называется “документ”, но это не тот документ типа.txt или.html. Данная запись хранится в памяти в JSON формате.
Пример:
Предположим, в нашей коллекции содержится 500 документов. Как уже говорилось раньше, каждый из них может содержать разные поля. Единственное поле, которое должно быть у каждой записи, - это уникальный идентификатор (id), который добавляется автоматически.
Поначалу данная терминология может быть непривычной. Всё будет намного понятнее, когда вы увидите работу с СУБД на практике.
Сперва качаем архив с MongoDB для win32 или win64 .
Распаковываем скачанный архив и помещаем его, к примеру, на диск C, в каталог mongodb. Причём, проследите за тем, чтобы каталог bin был доступен по адресу C:\mongodb\bin .
Далее прописываем путь к папке bin в настройках нашей ОС, для того чтобы к.exe файлам данной папки мы могли достучаться из любого места. Итак, делаем правый клик на Компьютер - Свойства. В списке слева, выбираем “Дополнительные параметры системы”:
В открывшемся окне ищем системную переменную Path. Кликаем по ней дважды. В поле “значение переменной” переходим в самый конец, ставим знак “;” и вписываем путь к каталогу bin:
Отлично! Жмём “ок”... и переходим к следующему шагу.
Для начала, нам необходимо создать каталог, где будут храниться наши БД. К примеру, C:\databases . Создаём эту папку.
Echo logpath=C:\mongodb\log\mongo.log > C:\mongodb\mongod.cfg
Данная команда создаст специальный лог файл и настройки конфигурации для сервиса.
Mongod --config C:\mongodb\mongod.cfg --install
Прежде чем запустить его, давайте отредактируем файл mongod.cfg , вписав туда настройку dbpath - путь к папке с нашими базами данных. В моём случае, после правки файла его содержание должно выглядеть примерно так:
Logpath=C:\mongodb\log\mongo.log dbpath=C:\databases
Возвращаемся к командной строке и запускаем сервис MongoDB:
Net start MongoDB
Для того чтобы проверить, будет ли сервис запускаться автоматически, нажимаем сочетание клавиш “windows+r”, пишем “services.msc”, нажимаем ОК.
В списке сервисов ищем MongoDB и, если его тип запуска не автоматический, то выставляем данный пункт, предварительно сделав правый клик, и выбрав, “свойства”.
Теперь, когда мы создали сервис, который будет запускать MongoDB при включении компьютера, нам не нужно будет делать это вручную.
Для проверки работы MongoDB открываем командную строку и пишем:
В ответе вы должны увидеть вот такую вот строку:
Итак, MongoDB установлена и сконфигурирована. В следующей части мы рассмотрим основные команды для работы с данной СУБД.
MongoDB представляет собой систему управления базами данных NoSQL с открытым исходным кодом, которая широко используется в современных приложениях. В этой статье мы опишем процесс установки MongoDB на ваш сервер для использования в production-среде.
На момент публикации данной статьи пакеты MongoDB из официальных репозиториев Ubuntu 16.04 ещё не были обновлены для использования новой системы инициализации systemd , . Использование MongoDB, установленного с помощью этих пакетов, на новом сервере с Ubuntu 16.04 требует дополнительного для настройки MongoDB как сервиса systemd для автоматического запуска при старте сервера.
Для того, чтобы следовать инструкциям, описанным в этой статье, вам необходим сервер с Ubuntu 16.04, настроенный согласно инструкциям в нашей , включая настройку не-рутового (non-root) пользователя.
MongoDB доступен из стандартных репозиториев Ubuntu, однако, для установки самых последних версий рекомендуется использовать официальный репозиторий MongoDB. На этом шаге мы добавим этот репозиторий на наш сервер.
Ubuntu проверяет подлинность пакетов путём проверки подписей GPG ключей, поэтому сначала нам необходимо импортировать ключ официального репозитория MongoDB.
После успешного импорта ключа вы увидите следующий вывод:
Gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Для этого выполните следующую команду:
После добавления репозитория нам необходимо обновить список пакетов.
Теперь мы можем установить пакеты MongoDB.
Эта команда установит несколько пакетов, содержащих последнюю стабильную версию MongoDB, а также некоторые средства настройки сервера MongoDB.
Для того, чтобы запускать MongoDB в виде сервиса Ubuntu 16.04, нам необходимо создать юнит-файл описывающий этот сервис. Юнит-файлы сообщают systemd , как управлять соответствующими ресурсами. Наиболее часто встречающимся типом юнит-файла является сервис , который указывает, как запускать и останавливать тот или иной сервис. Также этот файл указывает, надо ли запускать соответствующий сервис при старте системы, а также, имеет ли сервис зависимости от другого программного обеспечения.
Мы создадим юнит-файл для управления сервисом MongoDB. Создайте файл конфигурации mongodb.service в директории /etc/systemd/system с помощью nano или любого другого текстового редактора.
Вставьте следующий текст в этот файл, сохраните и закройте его.
/etc/systemd/system/mongodb.service
Description=High-performance, schema-free document-oriented database After=network.target User=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf WantedBy=multi-user.target
Этот файл имеет простую структуру:
Секция Unit описание сервиса MongoDB, а также его зависимостей, которые должны быть удовлетворены до запуска сервиса. В нашем случае MongoDB требует наличия сетевого подключения для запуска, поэтому мы указали директиву network.target .
Секция Service описывает параметры запуска сервиса. Директива User указывает, что сервис будет запущен от имени пользователя mongodb , а директива ExecStart задаёт команду запуска сервера MongoDB.
Последняя секция Install сообщает systemd , когда необходимо автоматически запускать сервис. Параметр multi-user.target задаёт стандартную последовательность запуска, что означает, что сервер будет автоматически запущен в процессе загрузки.
Эта команда не выводит ничего в консоль после завершения. Мы можем использовать systemctl для проверки успешного запуска сервиса.
Последнее, что нам осталось сделать, это включить автоматический запуск MongoDB при старте системы.
Теперь сервер MongoDB настроен и запущен, и вы можете управлять им с помощью команды systemctl (например, sudo systemctl mongodb stop , sudo systemctl mongodb start).
Если вы следовали инструкциям в нашей и настроили файрвол на вашем сервере, сервер MongoDB будет не доступен из Интернета.
Если вы планируете использовать сервер MongoDB только локально с приложениями, запущенными на этом же сервере, то это самая безопасная и рекомендуемая настройка. Если же вы хотите иметь доступ к вашему серверу MongoDB через Интернет, то вам необходимо настроить входящие соединения в ufw .
Для разрешения доступа к MongoDB на порту по умолчанию 27017 откуда угодно, вы можете использовать команду sudo ufw allow 27017 . Тем не менее, разрешение удалённого доступа через Интернет к серверу MongoDB с настройками по умолчанию даёт полный доступ к серверу баз данных.
Чаще всего доступ к MongoDB должен осуществляться только из определённых приложений, находящихся на других заранее известных серверах. Для этого мы можем разрешить доступ к порту по умолчанию MongoDB с указанием IP адресов серверов, которым разрешено соединяться с MongoDB.
Вы можете проверить настройки файрвола ufw следующей командой.
В выводе вы должны видеть, что трафик разрешён для порта 27017 . Если вы решили разрешить трафик только с определённых IP адресов, эти IP адреса будут указаны вместо слова Anywhere .
Status: active To Action From -- ------ ---- 27017 ALLOW Anywhere OpenSSH ALLOW Anywhere 27017 (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Описание более продвинутых настроек файрвола можно найти в статье .
Вы можете ознакомиться с более детальными инструкциями по установке и настройке MongoDB в .