Какой твой предпочтительный ODM в Ruby? MongoMapper, MongoID или MongoDoc? - PullRequest
15 голосов
/ 10 марта 2010

В Ruby в настоящее время поддерживается 3 ODM (объектных картографа данных):

Какой твой любимый и почему?

Ответы [ 8 ]

5 голосов
/ 02 марта 2011

Я просто выбрал Mongoid для нового проекта Rails 3, основываясь на аргументе, что у него лучшая документация.

Поскольку я новичок в MongoDB (с многолетним опытом работы с MySQL и небольшим опытом работы с CouchDB), мне потребовались хорошие руководства, которые бы взяли меня за руку и помогли мне доставить что-то работающее в течение разумного периода времени.

AFAIK Mongoid имеет только это: красивый сайт с хорошо документированными руководствами для таких новичков, как я.

4 голосов
/ 04 августа 2011

Статистика кода для Mongoid и MongoMapper enter image description here

Похоже, MongoMapper имеет гораздо лучшее качество кода (если он делает то же самое с меньшими затратами).

Вот анализатор CodeStats https://github.com/alexeypetrushin/code_stats

3 голосов
/ 07 октября 2010

На мой взгляд, трудно сказать, что лучше, если у вас есть опыт работы с DataMapper, вам понравится MongoMapper, но если вы использовали ActiveRecord, Mongoid - ваш предпочтительный выбор. Я считаю, что все они заслуживают того, чтобы попробовать их в контексте, в котором вы хотите их использовать.

2 голосов
/ 02 марта 2011

Хотя это и не является прямым ответом на ваш вопрос, я бы также подумал об использовании основного драйвера ruby ​​напрямую. В отличие от различных адаптеров SQL, класс ruby ​​Mongo прост в использовании и мощен. Поскольку запросы - это хэши, составление запросов, как правило, легко. Настоящее преимущество - доступ к атомным модификаторам . Если вы пользуетесь базой данных документов, эти модификаторы должны быть в вашем наборе инструментов.

Сказав это, я продолжу и рекомендую MongoMapper, потому что он имеет более чистую интеграцию с не-CRUD-компонентами MongoDB. Оба проекта делают успехи в этой области, и ситуация может измениться с тех пор, как я провел исследование в декабре 2010 года.

2 голосов
/ 03 апреля 2010

Я пробовал MongoMapper, но я думаю, что я пойду с Mongoid, потому что после быстрого чтения документов мне кажется несколько проще. Плюс, он разработан парнями из Hashrocket, так что это хорошая причина.

2 голосов
/ 16 марта 2010

Я использую MongoMapper.Это хорошо, за исключением того, что это мало медленно с преобразованиями времени.И он загружает все данные как массив.Например, MyCollection.all дает вам огромный массив, а не курсор.

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

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

0 голосов
/ 26 сентября 2011

Есть также MongodbModel http://alexeypetrushin.github.com/mongodb_model

0 голосов
/ 22 марта 2010

Я могу порекомендовать MongoMapper, поскольку он также работает с rails3 (бета и мастер). Я лично не пробовал другие 2 картографа, которые вы упомянули, так как MM отлично работает в моем рабочем процессе, и список рассылки очень активен. Кроме того, кодовая база действительно стабильна, и единственная проблема связана с мастером rails3, поэтому вы должны использовать ветку fredwu, которая уже содержит исправления для текущих изменений мастера rails3 в форме: http://github.com/fredwu/mongomapper.git

...