2010-03-10 6 views
15

Dans Ruby, il y a actuellement 3 (ODM cartographes de données objet) maintenue:Quelle est votre ODM préférée dans Ruby? MongoMapper, MongoID ou MongoDoc?

Quel est votre préféré et pourquoi?

+0

Pourquoi ne pas se fondre dans un MongoDocuments? Je pense que cela stimulerait le développement et la popularité. –

+0

MongoDoc et MongoId ont fusionné. Mais MongoMapper et Mongoid sont vraiment différents. Il est donc normal d'avoir 2 projets – shingara

Répondre

2

J'utilise MongoMapper. C'est bien sauf que c'est un peu lent avec les conversions de temps. Et il charge toutes les données en tant que tableau. MyCollection.all par exemple vous donne un énorme tableau, pas un curseur.

alors que Mongoid dit: - Optimisé pour une utilisation avec des jeux de données extrêmement volumineux.

Donc je suppose que vous pourriez essayer MongoID si vous avez besoin de vitesse et de gros recordsets.

+0

Le test de performance dans MongoMapper doit être rapide que MongoID – shingara

0

Je peux recommander MongoMapper, car il fonctionne aussi avec rails3 (beta et master). Personnellement, je n'ai pas essayé les 2 autres mappeurs que vous avez mentionnés, car MM fonctionne très bien dans mon flux de travail et la liste de diffusion est très active. En outre le code base est vraiment stable et le seul problème est avec le rail3 maître, donc vous devriez utiliser la branche de fredwu, qui inclut déjà des corrections pour les changements courants du rail3 sur form_for: http://github.com/fredwu/mongomapper.git

2

J'essayais MongoMapper, mais je pense que J'y vais avec Mongoid, parce qu'après une lecture rapide, cela me semble un peu plus facile. De plus, il est développé par des gars de Hashrocket, donc c'est une bonne raison en soi.

3

À mon avis, il est difficile de dire lequel est le meilleur, si vous avez l'expérience DataMapper vous aimerez MongoMapper, mais si vous avez utilisé ActiveRecord, Mongoid c'est votre choix préféré. Je crois que tous valent la peine d'essayer le contexte dans lequel vous voulez les utiliser.

5

Je viens de choisir Mongoid pour un nouveau projet Rails 3 basé sur l'argument qu'il a la meilleure documentation. Depuis que je suis nouveau sur MongoDB (avec beaucoup d'années de MySQL et un peu d'expérience CouchDB), j'avais besoin de bons guides qui me prennent par la main et m'aident à livrer quelque chose qui fonctionne dans un laps de temps raisonnable.

AFAIK Mongoid a juste cela: un beau site, avec des guides bien documentés pour les débutants comme moi.

2

Bien que n'étant pas une réponse directe à votre question, je voudrais également utiliser le pilote ruby ​​de base directement. Contrairement aux divers adaptateurs SQL, la classe ruby ​​de Mongo est facile à utiliser et puissante. Les requêtes étant des hachages, il est généralement facile de composer des requêtes. Le véritable avantage est l'accès au Atomic Modifiers. Si vous bénéficiez d'une base de documents Document, ces derniers doivent figurer dans votre boîte à outils. Cela dit, je vais aller de l'avant et recommander MongoMapper parce qu'il a une intégration plus propre avec les parties non-CRUD de MongoDB. Les deux projets font des progrès dans ce domaine, et la situation peut avoir des changements depuis que je l'ai fait mes recherches en Décembre 2010.

4

code Statistiques pour MongoId et MongoMapper enter image description here

Il ressemble MongoMapper a beaucoup mieux la qualité du code (s'il fait la même chose avec moins).

Voici l'analyseur CodeStats https://github.com/alexeypetrushin/code_stats

+5

Il est bien connu qu'un code plus court ne signifie pas toujours une meilleure performance. – Kelly

+0

@Kelly, personne n'a dit quoi que ce soit à propos de la performance, n'est-ce pas? – Timo

+0

Cette discussion concernait les ODM préférés. Je préfère de meilleures performances. :) – Kelly

Questions connexes