Каков ваш предпочтительный 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
Ответ 8
Там также MongodbModel http://alexeypetrushin.github.com/mongodb_model