- PVSM.RU - https://www.pvsm.ru -

Установка и использование MongoDb

Этот пост может быть полезен тем, кто решил попробовать Mongodb в своем проекте (использует его впервые).

Mongodb может быть хорошим решением (по сравнению с СУБД), если вам нужно хранить объекты со сложной структурой или не однотипные объекты. Также, возможности mapReduce полезны для генерации разнообразной статистики, использование mapReduce может быть гораздо удобнее использования агрегирующих функций и написания процедур в SQL.

Мое знакомство с mongodb началось с The Little mongodb book [1] — хорошего мануала, в котором, тем не менее, не освещаются некоторые моменты, важные для начала разработки на Mongo.

1. Установка mongo. Если устанавливать mongodb на linux (Debian, Centos) через пакетный менеджер (apt-get install mongodb в debian), то будет установлена версия 1.4.4. Вероятнее всего, вы быстро поймете, что ее возможностей недостаточно, и вам нужна версия 2.x. Например, в 1.4.4 отсутствует возможность удалять элементы из массива в документе по критерию, нельзя задать некоторые опции mapReduce (только то, с чем я столкнулась).
Чтобы поставить последнюю версию, можно скачать архив с бинарными файлами с оф. сайта [2]. При этом, чтобы не писать скрипт запуска демона и конфиг, можно сначала поставить mongodb из репозитория, а потом заменить бинарники в /usr/bin на новые (проверено в Debian).

2. Работа с mongodb. Как только ваше приложение с mongo будет работать с какой-либо реальной нагрузкой, вам обязательно потребуется создать индексы для ваших коллекций. Если этого не сделать (или если создать индексы неправильно), процесс mongo быстро займет 100% CPU.

3. Не делайте mapReduce по запросу. Так как это трудоемкая операция, лучше запускать ее из планировщика (crontab).

4. Если вы используете mongo с php, и ведете разработку под Windows, версия драйвера для mongo, который вам нужен, зависит от версии компилятора, которым собран php. Узнать версию компилятора можно, посмотрев вывод phpinfo(). Если в строке Compliler запись типа MSVC6, то и драйвер вам нужен собранный VC6 (для PHP 5.3 — http://downloads.mongodb.org/mongo-latest-php5.3vc6ts.zip [3]). Если поставите не тот драйвер — информация о mongo не появится в phpinfo, а при попытке использовать Mongo получите ошибку "Class 'Mongo' not found [4]".

Удачной работы!

Автор: franny


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/mongodb/11929

Ссылки в тексте:

[1] The Little mongodb book: http://express-js.ru/mongo-book/

[2] оф. сайта: http://www.mongodb.org/downloads

[3] http://downloads.mongodb.org/mongo-latest-php5.3vc6ts.zip: http://downloads.mongodb.org/mongo-latest-php5.3vc6ts.zip

[4] Class 'Mongo' not found: http://www.php.net/manual/ru/mongo.installation.php#104223