Python+MongoDB. QuickStart

Преамбула: Пишу для себя, чтобы не забыть, ну а если кто-то через поиск найдёт данный пост, почему бы и нет? Отвратительные методы изучения представленных технологий included.

В этот раз на разделочном столе окажется MongoDB, относящаяся к одному из главных buzzword 2009-2010 — noSQL DB. Препарировать её поможет ЯП Python. Ну и поскольку QuickStart д.б. именно quick, приступаем:

1. Не будем разворачивать Mongo на локалхосте. Возьмём сервис Mongohq.com — это The cloud-based hosted database solution for MongoDB, если смочь прочитать header у страницы. Там гибкая плановая политика. Мы же в пару кликов зарегистрируем free-аккаунт с 16MB для базы.

2. Через web-интерфейс создаются: имя базы, имя коллекции, забиваются данные. Данные просят забивать в формате JSON, впрочем глупый лайфхак: для теста берёте любой текст (я взял пару своих рассказиков, например) и оборачиваете в

<text>Произвольный набор символов</text>

3. Также, по вкусу, через web можно добавить и файлы произвольного формата. Они тоже станут частью базы и GridFS Store.

4. Устанавливаем PyMongo. Это тулза (ну или драйвер, кому что понятнее) для управления mongo питоньим синтаксисом. Можно напрямую взять исходники с GitHub и сделать классическое «python setup.py install». Можно поступить ещё хомячковей проще — на Python Package Index есть и egg, и exe-инсталлятор. Само собой, есть и установка через
easy_install pymongo

5. Берём свой любимый редактор и заносим в него примерно такое:

from pymongo import Connection
host= 'flame.mongohq.com'
port = 27088
dbName = 'YourDatabaseName'

connection = Connection(host, port)
db = connection[dbName]

userID = 'YourNameFromReg'
pwd = 'YourPassFromReg'
db = connection[dbName]
db.authenticate(userID, pwd)

for collection in db.collection_names():
    print collection

6. Внимание! Порт может отличаться от предложенного в примере. Перепроверьте свой порт на web-интерфейсе MongoHQ.

7. Результатом будет выведенный список созданных коллекций.

8. It`s magic, but it`s works!

Advertisements

One response to “Python+MongoDB. QuickStart

  1. Хорошо пишешь. Молодец.
    Только наверное зря локальную базу не поставил. Всей скорости не почувствовал. 20М в монго грузятся субъективно в 10 раз быстрее чем в мускул 🙂

Обсуждение закрыто.