Ruby では、現在 3 つの ODM (オブジェクト データ マッパー) が維持されています。
どちらが好みですか、その理由は何ですか?
Mongoid と MongoMapper のコード統計
MongoMapper のコード品質ははるかに優れているようです (より少ないコードで同じことを行う場合)。
これがアナライザー CodeStats ですhttps://github.com/alexeypetrushin/code_stats
私の意見では、どちらが優れているとは言えません。DataMapper の経験がある場合は MongoMapper を気に入るでしょうが、ActiveRecord を使用したことがある場合は Mongoid を選択することをお勧めします。それらはすべて、使用するコンテキストに関して試してみる価値があると思います。
私はMongoMapperを使用しています。時間変換で少し遅いことを除けば、それは良いことです。そして、すべてのデータを配列としてロードします。MyCollection.all
たとえば、カーソルではなく、巨大な配列を提供します。
Mongoidは次のように述べています。-非常に大きなデータセットで使用するために最適化されています。
したがって、速度が必要で、大きなレコードセットがある場合は、MongoIDを試すことができると思います。
あなたの質問に対する直接的な回答ではありませんが、基本的な ruby ドライバーを直接使用することも検討します。さまざまな SQL アダプターとは異なり、Mongo の Ruby クラスは使いやすく強力です。クエリはハッシュであるため、通常、クエリの作成は簡単です。真の利点は、Atomic Modifiersへのアクセスです。ドキュメント データベースを利用する場合は、これらの修飾子がツールボックスに含まれている必要があります。
そうは言っても、MongoDB の非 CRUD 部分との統合がよりクリーンであるため、MongoMapper をお勧めします。どちらのプロジェクトもこの分野で成果を上げており、私が 2010 年 12 月に調査を行って以来、状況は変化する可能性があります。
私は MongoMapper を試していましたが、ドキュメントをすばやく読んだ後はやや簡単に思えるので、Mongoid を使用すると思います。さらに、Hashrocket のメンバーによって開発されているため、それ自体が正当な理由です。
Rails3 (ベータおよびマスター) でも動作するので、MongoMapper をお勧めします。MM は私のワークフローでうまく機能し、メーリングリストは非常に活発であるため、私は個人的にあなたが言及した他の 2 つのマッパーを試しませんでした。さらに、コードベースは非常に安定しており、唯一の問題は rails3 マスターにあるため、form_for の現在の rails3 マスターの変更に対する修正が既に含まれている fredwu のブランチを使用する必要があります: http://github.com/fredwu/mongomapper.git
MongodbModel もありますhttp://alexeypetrushin.github.com/mongodb_model