пятница, 28 декабря 2012 г.

MongoDB Установка и работа с базой данных

Установка MongoDB на Windows.

MongoDB - это пакет программного обеспечения с открытым исходным кодом, который можно загрузить с веб-сайта mongodb.com. Чтобы найти ссылки на скачивание набора двоичных файлов для Windows, достаточно открыть этот сайт в браузере; ищите вверху в правой части страницы ссылку Downloads. Или, если вы предпочитаете прямые ссылки, используйте mongodb.org/display/DOCS/Downloads. На момент написания этой статьи стабильной версией является выпуск 2.2.2. Это не более чем ZIP-архив файлов, поэтому его установка, фигурально выражаясь, смехотворно проста: просто распакуйте содержимое архива в подходящее вам место на диске.

Нет, серьезно. Это все.

ZIP-файл создает три каталога: bin, include и lib. Единственный интересный каталог — bin, в котором содержатся восемь исполняемых файлов. Никакие другие двоичные зависимости (или исполняющая среда) не нужны, а на данный момент нас интересуют лишь два из этих исполняемых файлов. Это mongod.exe (процесс самой базы данных MongoDB) и mongo.exe (клиент оболочки командной строки, который обычно используется для проверки правильно установки и корректности работы, прямого просмотра данных и выполнения административных задач.

Упрощенно процедура установки выглядит так:

1. Скачиваем архив mongodb с сайта.
2. Распаковываем (например, C:\mongodb)
3. Для сервера mongodb нужна папка db, при запуске сервер ищет директории data/db или db в той же директории, где распаковали. Соответственно, создаем папки data и db: C:\data\ и C:\data\db
4. Пробуем запустить через cmd:
C:\mongodb\bin\mongod.exe

(Замечание. Если при запуске в Windows XP у вас появилось сообщение об ошибке "The procedure entry point InterlockedCompareExchange64 could not be located in the dynamic link library KERNEL32.dll", то это означает, что вы скачали последнюю версию MongoDB, которая уже не поддерживает Windows XP. В этом случае вам необходимо скачать более старую версию MongoDB, имеющую номер 2.0.x, в которой поддержка Windows XP присутствует.)


Запуск Mongod.exe для проверки успешности установки.

Проверить корректность установки так же легко, как запустить mongod из клиента командной строки. По умолчанию MongoDB хранит данные по пути C:\data\db, но это можно изменить с помощью текстового файла, передаваемого по имени в командной строки через --config. Проверка правильности  установки осуществляется очень просто: если на момент запуска mongod существует подкаталог db, то все работает правильно.



Если этого каталога db нет, то MongoDB не станет создавать его. Заметьте, что в моей системе Windows 7 при запуске MongoDB обычно выскакивает окошко с «This application wants to open a port» («Это приложение собирается открыть порт»). Убедитесь, что порт доступен (по умолчанию - 27017), иначе подключение к нему будет сильно затруднено.

После запуска сервера подключение к нему с помощью оболочки весьма тривиально: приложение mongo.exe запускает среду командной строки, которая обеспечивает прямое взаимодействие с сервером.



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



По сути, MongoDB использует нотацию данных JSON (JavaScript Object Notation), что объясняет ее гибкость и то, как с ней взаимодействуют клиенты. На внутреннем уровне MongoDB хранит все в BSON - двоичном надмножестве JSON - для упрощения хранилища и индексации. Однако JSON остается предпочтительным форматом ввода-вывода MongoDB, и обычно именно этот формат используется между веб- и вики-сайтами MongoDB. Если вы не знакомы с JSON, советую подучить его, прежде чем всерьез браться за MongoDB. А пока, просто смеха ради, загляните в каталог, в котором mongod хранит данные, и вы увидите, что в нем появилась пара файлов с именами, начинающимися с test.

Для выхода из оболочки достаточно ввести exit, а для закрытия сервера нажмите Ctrl+C в окне или просто закройте окно; сервер захватывает уведомление о закрытии и корректно завершает все до прекращения работы своего процесса.

Работаем с MongoDB через консоль.

Теперь, когда сервер MongoDB установлен и запущен, попробуем поработать с этой базой данных. Запускаем cmd.exe, переходим в директорию с распакованной mongodb и запускаем mongo.exe:
 
C:\mongodb\bin\mongo.exe



Так мы запустили клиент-консоль MongoDB. По умолчанию у нас доступна база данных test. Создадим в ней коллекцию foo:

>db.foo.save(x)

Этой командой мы пробуем обновить запись в коллекции foo, с JSON объектом x, если такой не найдется, то запись будет создана. Данная команда эквивалентна следующей:

>db.foo.update({_id:x._id})

Еще пример:

>db.foo.save({name:"Andrew",_id: ObjectId(«4b9e4a1fc583fa1c76198319″)})

Данная команда обновит запись с _id = "4b9e4a1fc583fa1c76198319", либо создаст новую если не найдет.

Для нахождения всех записей проделаем следующее:

>db.foo.find()

Выдаст:
{ "_id" : ObjectId("4f40e0a30418c15c0189233b"), "name" : "Andrew" }

Не забываем, что все данные MongoDB хранит в JSON формате, что весьма удобно в работе с JavaScript.

В самой консоли mongo.exe все пишется на JavaScript - это значит, что вы можете писать так:

>var doc = db.foo.find()

В doc у вас будет хранится "объект объектов", чтобы преобразовать его в массив объектов можно написать следующее:

>var doc = db.foo.find().toArray()

Выборка записей в MongoDB.

Пример в SQL:

SELECT * FROM foo WHERE name = "Andrew"

В MongoDB будет писаться так:

>db.foo.find({name:"Andrew"})

SELECT age FROM users WHERE name = "Andrew"

Выглядит так:

>db.users.find({name:"Andrew"}, {age:true})

Выборка самой первой записи:

SELECT * FROM users WHERE foo = "bar" LIMIT 1

>db.foo.find({foo:"bar"}).limit(1)

Или еще короче:

>db.foo.findOne({foo:"bar"})

Срединение с MongoDB через Python с использованием библиотеки PyMongo.

PyMongo это простая библиотека на языке Python, которая позволяет получить доступ к MongoDB API из ваших приложений. Вы можете скачать PyMongo здесь: http://api.mongodb.org/python/current/.

После установки PyMongo откройте через консоль интерактивный инетрепретатор Python, набрав:

python

В отдельно окне консоли командной строки запустите сервер MongoDB, набрав:

C:\mongodb\bin\mongod.exe

В окне интерпретатора Python наберите следующие команды:

>>> import pymongo
>>> conn = pymongo.Connection("localhost", 27017)
>>> db = conn.example
>>> db.collection_names()

В результате в консоли появятся квадратнце скобки:
[]

Если все прошло успешно и сообщений об ошибках в консоли не появилось, то Python взаимодействует с сервером MongoDB правильно.

Теперь вы можете использовать MongoDB в ваших приложениях, написанных на Python.

Комментариев нет:

Отправить комментарий