Статьи

Начало работы с MongoLab

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 в веб-браузере. Вы увидите необходимую информацию о подключении в верхней части окна базы данных в области веб-администрирования:

Информация о подключении MongoLab

Я рекомендую использовать метод доступа к оболочке, поскольку стандартный метод URI еще не поддерживается всеми драйверами.

Откройте другую вкладку терминала и вместо обычной ./mongodb/bin/mongo

 ./mongodb/bin/mongo dbh23.mongolab.com:27237/my_new_db -u <db-user> -p <db-password>

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

MongoLab создание пользователей

Создание коллекции и добавление некоторых записей

Одна из приятных особенностей MongoDB заключается в том, что вам не нужно сначала определять структуры данных. Мы можем просто пойти дальше и начать создавать записи в оболочке. Затем мы сможем просмотреть эти записи в разделе веб-администрирования нашей учетной записи MongoLab.

Поэтому в сеансе консоли / терминала, который вы запускаете и который подключен к вашей базе данных MongoLab, попробуйте следующее:

 db.task.insert({title:"create a web app that uses Mongodb",status:"in progress",context:"today"})

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

Продолжайте и добавьте еще несколько документов таким же образом.

Затем мы можем проверить наши документы в области веб-администрирования MongoLab. Нажмите на «Задачи» в списке коллекций:

Коллекции MongoLab

И вы увидите список документов, которые вы создали:

Коллекции MongoLab

Использование PHP для доступа к базе данных MongoLab и получения документов

Это предполагает, что вам удалось установить PHP-драйверы MongoDB для вашей локальной системы.

Первая итерация для нашего простого приложения требует от нас:

  1. Подключиться к базе данных MongoLab
  2. Определите, с какой базой данных мы хотим работать
  3. Определите, с какой коллекцией мы хотим работать

Мы можем сделать это, создав некоторые переменные и используя информацию строки подключения, предоставленную нам 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