MongoDB — одна из тех баз данных NoSQL, которая быстро завоевала популярность. Даже если вы немного скептически относитесь к движению NoSQL, некоторое время, проведенное с MongoDB, будет хорошим опытом. Особенно, когда вы узнаете, что это проект с открытым исходным кодом, и поддерживается во всех основных операционных системах.
Неудивительно, что появился ряд вариантов PaaS для удаленного размещения MongoDB. Тот, кого я собираюсь представить вам в этой статье, называется MongoLab .
Параметры бесплатного аккаунта
Доступен вариант бесплатной учетной записи. Вы получаете 240 МБ на общей учетной записи, и она может быть размещена на Amazon, Rackspace или Joyent. Существует также возможность увеличения, если ваши потребности растут. Вы получаете область веб-администрирования, которая показывает вам обзор ваших баз данных, пользователей и коллекций. Он также показывает необходимые строки подключения, чтобы вы могли подключаться к базе данных через оболочку MongoDB с вашего собственного компьютера.
Получить учетную запись
Это займет всего несколько секунд, чтобы зарегистрировать бесплатный аккаунт. Просто зайдите сюда, чтобы зарегистрироваться, и вы сразу же приступите к работе.
Установка MongoDB
Вам понадобится MongoDB, установленный на вашем компьютере. Существуют различные варианты, которые вы можете использовать, и они подробно описаны на веб-сайте MongoDB . Я рекомендую вам следовать их инструкциям по созданию каталога данных. Я установил MongoDB на несколько разных машин, и каждый раз этот процесс работает как подробно.
Если вы используете Mac, я предлагаю вам загрузить 64-битный двоичный выпуск . Я использовал этот метод на нескольких разных машинах, и он просто работает. Вы можете разместить папку где угодно; Я положил мой в свой домашний каталог, чтобы было проще вызвать папку bin из терминала.
Слово о водителях
Есть драйверы MongoDB для всех популярных языков программирования.
PHP
Если вы хотите работать с PHP и MongoDB, как подробно описано в этой статье, вам необходимо установить драйверы Mongo PHP . Есть драйверы, доступные для всех основных операционных систем.
питон
Другие языки программирования также поддерживаются. Например, если вам нравится Python, вам нужно установить PyMongo .
Как только вы это сделаете, запуск Python из оболочки должен позволить вам сделать:
import pymongo
… без ошибок.
Рубин
Для Ruby есть монго-жемчужина. Во-первых, убедитесь, что RubyGems обновлен:
gem update --system
Затем вы можете установить монго драгоценный камень:
gem install mongo
Лучший совет также предполагает установку гема bson_ext для оптимизации производительности:
gem install bson_ext
Теперь вы можете запустить интерактивную оболочку Ruby и сделать это:
require 'mongo'
Нажмите Enter, и вы должны получить этот ответ:
=> true
Это говорит вам все хорошо.
Создание базы данных
В панели веб-администрирования MongoLab вы можете создать базу данных, к которой вы затем подключаетесь и используете через локальную оболочку. Войдите в свою учетную запись, нажмите кнопку «Добавить», чтобы создать базу данных:
Затем вам будет предложено ввести некоторую базовую информацию о конфигурации:
Как только это будет сделано, ваша база данных будет готова для подключения.
Подключение к вашей учетной записи MongoLab
Поначалу это может показаться странным, но для подключения к вашей учетной записи MongoLab вам понадобится MongoDB, работающий на вашей собственной машине. Запустив его, вы можете подключиться к своему экземпляру MongoDB в своей учетной записи MongoLab.
Сначала запустите сервер localhost из терминала / консоли:
./mongodb/bin/mongod
Это предполагает, что у вас установлен MongoDB в вашем домашнем каталоге. Затем откройте свою учетную запись MongoLab в веб-браузере. Вы увидите необходимую информацию о подключении в верхней части окна базы данных в области веб-администрирования:
Я рекомендую использовать метод доступа к оболочке, поскольку стандартный метод URI еще не поддерживается всеми драйверами.
Откройте другую вкладку терминала и вместо обычной ./mongodb/bin/mongo
./mongodb/bin/mongo dbh23.mongolab.com:27237/my_new_db -u <db-user> -p <db-password>
Точная строка, которую вам нужно использовать, будет показана в разделе веб-администрирования вашей учетной записи. Вы можете создать пользователя для своей базы данных в области веб-администрирования, нажав на вкладку пользователей:
Создание коллекции и добавление некоторых записей
Одна из приятных особенностей MongoDB заключается в том, что вам не нужно сначала определять структуры данных. Мы можем просто пойти дальше и начать создавать записи в оболочке. Затем мы сможем просмотреть эти записи в разделе веб-администрирования нашей учетной записи MongoLab.
Поэтому в сеансе консоли / терминала, который вы запускаете и который подключен к вашей базе данных MongoLab, попробуйте следующее:
db.task.insert({title:"create a web app that uses Mongodb",status:"in progress",context:"today"})
Когда вы нажмете кнопку возврата, ваша запись будет сохранена. На этом этапе произошло то, что ваша коллекция была создана в базе данных, к которой вы подключены, и ваш документ был сохранен в ней. С MongoDB коллекция контекстуально эквивалентна таблице, а документ эквивалентен строке в более традиционных базах данных, таких как MySQL.
Продолжайте и добавьте еще несколько документов таким же образом.
Затем мы можем проверить наши документы в области веб-администрирования MongoLab. Нажмите на «Задачи» в списке коллекций:
И вы увидите список документов, которые вы создали:
Использование PHP для доступа к базе данных MongoLab и получения документов
Это предполагает, что вам удалось установить PHP-драйверы MongoDB для вашей локальной системы.
Первая итерация для нашего простого приложения требует от нас:
- Подключиться к базе данных MongoLab
- Определите, с какой базой данных мы хотим работать
- Определите, с какой коллекцией мы хотим работать
Мы можем сделать это, создав некоторые переменные и используя информацию строки подключения, предоставленную нам MongoLabs. На этот раз мы будем использовать версию драйвера (стандартный URI). Мы можем поместить нашу попытку подключения в блок try / catch, чтобы приложение корректно завершалось сбоем, если по какой-либо причине мы не можем подключиться:
<?php
try
{
$connection = new Mongo('mongodb://<username>:<password>@ds031347.mongolab.com:31347/your_database');
$database = $connection->selectDB('your_database');
$collection = $database->selectCollection('tasks');
}
catch(MongoConnectionException $e)
{
die("Failed to connect to database ".$e->getMessage());
}
$cursor = $collection->find();
?>
Надеюсь, многое из этого говорит само за себя. Тем не менее, есть некоторые специфичные для класса PHP MongoDB вещи, такие как эта:
$cursor = $collection->find();
Эта строка кода использует метод MongoCursor для извлечения всех документов в коллекции.
Далее, мы создадим HTML-документ под существующим кодом и переберем документы, чтобы отобразить их на нашей странице:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Tasks Viewer</title>
<link type="text/css" rel="stylesheet" href="" />
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<h1>My Tasks</h1>
<?php while ($cursor->hasNext()):
$task = $cursor->getNext(); ?>
<h2><?= $task['title'] ?></h2>
<strong>Status:</strong> <?= $task['status']?> <br />
<strong>Context:</strong> <?= $task['context']?><br />
<?php endwhile;?>
</body>
</html>
Опять же, если вы провели много времени с PHP, это должно выглядеть довольно просто. Мы используем цикл while для итерации по возвращенным документам, распечатывая содержащиеся в них данные. Обратите внимание, что класс PHP имеет hasNext()
getNext()
Вы можете прочитать больше о классе PHP MongoDB здесь .
В заключение…
Надеюсь, эта статья разожгла ваш аппетит, чтобы вы могли серьезно взглянуть на MongoDB. MongoLab — это отличный сервис, который предоставляет облачный доступ к MongoDB и работает очень быстро. При условии, что вы все правильно установили, вы можете мгновенно кодировать приложения, которые подключаются к MongoDB, используя ваши любимые технологии.
В следующей статье мы расширим это простое приложение и добавим части C, U и D к обычным операциям «CRUD», которые мы используем с другими базами данных.
Изображение листа через Shutterstock