Опубликован: 12.03.2016 | Уровень: для всех | Доступ: платный
Лекция 1:

Введение

Лекция 1 || Лекция 2 >

Лицензия

The Little MongoDB Book (Маленькая книга о MongoDB) распространяется под лицензией Attribution-NonCommercial 3.0 Unported. Вы не должны платить за эту книгу.

Разрешается свободно копировать, распространять, изменять или публиковать данную книгу. Однако, прошу всегда ссылаться на автора - Karl Seguin - и не использовать книгу в коммерческих целях.

Полный текст лицензии всегда можно прочитать здесь:

http://creativecommons.org/licenses/by-nc/3.0/legalcode

Об авторе

Karl Seguin - разработчик с опытом во многих областях и технологиях. Он является .NET- и Ruby-разработчиком с большим опытом работы. Также участвует в open-source проектах, является техническим писателем и нерегулярным докладчиком на конференциях. Применительно к MongoDB, он был разработчиком ядра C# MongoDB библиотеки NoRM, написал интерактивный учебник mongly и Mongo Web Admin. Его бесплатный сервис для разработчиков казуальных игр, mogade.com, работает на MongoDB.

Карл также написал книгу The Little Redis Book

Вот его блог: http://openmymind.net, и твиттер:

Благодарности

Особая благодарность Perry Neal за ум, внимание и энтузиазм. Ты оказал мне неоценимую помощь. Спасибо.

Последняя версия

Свежие исходники книги доступны по адресу:

http://github.com/karlseguin/the-little-mongodb-book

О переводе

Перевёл на русский язык (хабраюзер markpnk).

Корректоры:

Не моя вина, что книга такая короткая, просто MongoDB легка в освоении.

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

Яркий пример того - прогресс NoSQL-технологий, приходящих на замену давно известным реляционным базам данных. Вчера еще веб базировался на нескольких известных СУРБД, однако уже сегодня появилось около пяти NoSQL-решений, достойно зарекомендовших себя.

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

Принимая во внимание всё вышеизложенное, мы должны уяснить, чем же является NoSQL. Это широкий термин, который означает разное для разных людей. Лично я использую его в широком смысле, чтобы обозначить систему, участвующую в хранении данных. С другой стороны NoSQL для меня означает убежденность в том, что задача хранения данных не возлагается на одну большую систему. В то время, как производители большинства баз данных исторически пытались позиционировать свой софт, как решение "всё в одном", NoSQL стремится к меньшему уровню ответственности - когда для определенных задач может быть выбран такой инструмент, который бы решал именно эту задачу наилучшим образом. К примеру, ваш NoSQL-стек может эффективно использовать реляционные базы данных, как например MySQL, однако он также может включать в себя Redis - для организации хранения записей key-value или Hadoop - для интенсивной обработки данных. Проще говоря, NoSQL - это открытая технология, состоящая из альтернативных, существующих и дополнительных шаблонов управления данными.

Удивительно, но MongoDB подходит под все эти определения. Как документ-ориентированная СУБД, Mongo - это довольно-таки обобщенное NoSQL решение. Ее можно рассматривать, как альтернативу реляционным СУБД. Подобно реляционным СУБД, она также может выигрышно дополняться более специализированными NoSQL решениями. У MongoDB есть как достоинства, так и недостатки, о них мы поговорим в следующих частях книги.

Как вы уже заметили, термины MongoDB и Mongo используются как синонимы.

Приступая к работе

Большая часть книги освещает базовые возможности MongoDB. Поэтому нам понадобится консоль MongoDB. Консоль будет использоваться для учебных и административных задач, а в коде мы будем пользоваться драйвером MongoDB.

Мы подошли к первому, что надо знать о MongoDB: к её драйверам. У MongoDB есть множество официальных драйверов для различных языков. Их можно рассматривать как драйверы уже привычных реляционных БД. На их основе сообщество разработчиков построило множество высокоуровневых драйверов - для определенных языков и фреймворков. Например, NoRM это библиотека для C#, реализующая LINQ, а MongoMapper для Ruby, с поддержкой ActiveRecord. Программировать напрямую, используя низкоуровневые драйверы MongoDB, или же с применением высокоуровневых библиотек - решайте сами. Я подробно остановился на этом, потому что множество новичков бывают сбиты с толку наличием как официальных драйверов, так и разрабатываемых сообществом - первые нацелены на базовую коммуникацию с Mongo, в то время как вторые - больше на внедрение в конкретные языки и фреймворки.

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

  1. Зайдите на официальную страницу скачивания и скачайте бинарные файлы из первой строки (рекомендованную стабильную версию) для операционной системы, которую вы используете. Для разработки можно использовать как 32-, так и 64-разрядную версию.
  2. Распакуйте архив (куда угодно) и перейдите в папку bin. Пока ничего не запускайте, но запомните, что mongod - это сервер, а mongo - клиентская консоль - вот два исполняемых файла, с которыми нам чаще всего предстоит работать.
  3. Создайте новый файл в папке bin и назовите его mongodb.config
  4. Добавьте в mongodb.config одну строку: dbpath=ПУТЬ_КУДА_ХОТИТЕ_СОХРАНИТЬ_ФАЙЛЫ_БАЗЫ_ДАННЫХ.

    Например, в Windows можно написать dbpath=c:\mongodb\data а в Linux - dbpath=/etc/mongodb/data.

  5. Убедитесь, что указанный вами путь dbpath существует.
  6. Запустите mongod с параметром --config /path/to/your/mongodb.config.

Для пользователей Windows, например, если вы распаковали скачанный файл в c:\mongodb\ и создали папку c:\mongodb\data\, то в c:\mongodb\bin\mongodb.config следует указать db?path=c:\mongodb\data\. Теперь можно запускать mongod из командной строки с помощью команды c:\mongodb\bin\mongod --config c:\mongodb\bin\mongodb.config.

Папку bin можно для удобства добавить в переменную окружения PATH. Для пользователей MacOSX и Linux инструкции практически те же самые. Всё, что нужно сделать - это просто изменить пути.

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

Теперь, чтобы подключиться к запущенному серверу, можете запустить mongo (без d в конце). Попробуйте ввести db.version(), чтобы убедиться, что все в порядке. Если всё нормально - вы увидите номер версии вашего сервера.

Лекция 1 || Лекция 2 >
Roman Sarychev
Roman Sarychev
Россия
Сергей Проскуряков
Сергей Проскуряков
Россия, Пермь, 67