Каков ваш предпочтительный ODM в Ruby? MongoMapper, MongoID или MongoDoc?

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

Что вы предпочитаете и почему?

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

Здесь анализатор CodeStats https://github.com/alexeypetrushin/code_stats

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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