В Ruby, в настоящее время существует 3 ODM (картостроители данные объекта) благоустроенный:Каков ваш предпочтительный ODM в Ruby? MongoMapper, MongoID или MongoDoc?
Что вы предпочитаете и почему?
В Ruby, в настоящее время существует 3 ODM (картостроители данные объекта) благоустроенный:Каков ваш предпочтительный ODM в Ruby? MongoMapper, MongoID или MongoDoc?
Что вы предпочитаете и почему?
Я использую MongoMapper. Это хорошо, за исключением того, что с конверсиями Time очень мало. И он загружает все данные в виде массива. MyCollection.all
, например, дает вам огромный массив, а не курсор.
в то время как Mongoid говорит: - Оптимизирован для использования с чрезвычайно большими наборами данных.
Так что, я думаю, вы могли бы попробовать MongoID, если вам нужна скорость и большие записи.
Тест производительности внутри MongoMapper должен быть быстрым, чем MongoID – shingara
Я могу порекомендовать MongoMapper, так как он также работает с rails3 (бета и мастер). Я лично не пробовал другие 2 mappers, которые вы упомянули, поскольку MM отлично работает в моем рабочем процессе, и список рассылки очень активен. Кроме того, кодовая база действительно стабильна, и единственная проблема связана с мастером rails3, поэтому вы должны использовать ветку fredwu, которая уже содержит исправления для текущих изменений rails3 на form_for: http://github.com/fredwu/mongomapper.git
Я пытался МонгоМаппер, но я думаю, Пойдем с Mongoid, потому что после быстрого чтения мне кажется несколько легче. Кроме того, он разработан парнями из Hashrocket, так что это хорошая причина.
По моему мнению, трудно сказать, что лучше, если у вас есть опыт DataMapper, вам понравится MongoMapper, но если вы использовали ActiveRecord, Mongoid это ваш предпочтительный выбор. Я считаю, что все они заслуживают внимания в отношении того, где вы хотите их использовать.
Я только что выбрал Mongoid для нового проекта Rails 3, основываясь на аргументе о том, что он имеет лучшую документацию.
Поскольку я новичок в MongoDB (много лет MySQL и немного опыта CouchDB), мне нужны были хорошие гиды, которые берут меня за руку и помогают мне доставить что-то, работая в течение разумного промежутка времени.
AFAIK Mongoid имеет только что: красивый сайт с хорошо документированными руководствами для новичков, подобных мне.
Не будучи прямым ответом на ваш вопрос, я бы также рассмотрел возможность использования основного рубинового драйвера напрямую. В отличие от различных адаптеров SQL, рубиновый класс Mongo прост в использовании и силен. Поскольку запросы являются хешами, составление запросов обычно легко. Реальное преимущество - доступ к Atomic Modifiers. Если вы используете базу данных Document, эти модификаторы должны быть в вашем наборе инструментов.
Сказав это, я продолжу и рекомендую MongoMapper, потому что он имеет более чистую интеграцию с частями MongoDB, не относящимися к CRUD. Оба проекта делают успехи в этой области, и ситуация может иметь изменения, так как я сделал свое исследование в декабре 2010 года
Код Статистика Mongoid и MongoMapper
Похоже MongoMapper имеет намного лучшее качество кода (если он делает то же самое с меньшим).
Вот анализатор CodeStats https://github.com/alexeypetrushin/code_stats
Там также MongodbModel http://alexeypetrushin.github.com/mongodb_model
Почему они не слиться в одну MongoDocuments? Я думаю, что это ускорит развитие и популярность. –
MongoDoc и MongoId имеют слияние. Но MongoMapper и Mongoid действительно разные. Так что нормально иметь 2 проекта – shingara