2010-03-10 9 views
15

В Ruby, в настоящее время существует 3 ODM (картостроители данные объекта) благоустроенный:Каков ваш предпочтительный ODM в Ruby? MongoMapper, MongoID или MongoDoc?

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

+0

Почему они не слиться в одну MongoDocuments? Я думаю, что это ускорит развитие и популярность. –

+0

MongoDoc и MongoId имеют слияние. Но MongoMapper и Mongoid действительно разные. Так что нормально иметь 2 проекта – shingara

ответ

2

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

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

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

+0

Тест производительности внутри MongoMapper должен быть быстрым, чем MongoID – shingara

0

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

2

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

3

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

5

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

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

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

2

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

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

4

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

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

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

+5

Известно, что более короткий код не всегда означает лучшую производительность. – Kelly

+0

@ Келли, никто ничего не сказал о производительности, не так ли? – Timo

+0

Эта тема была о предпочтительных ODM. Я предпочитаю лучшую производительность. :) – Kelly

 Смежные вопросы

  • Нет связанных вопросов^_^