MongoDB と mongoid を使い始めたばかりです。私が抱えている最大の問題は、マップ/リデュース機能を理解して、非常に基本的なグループ化などを実行できるようにすることです。
次のようなモデルがあるとしましょう:
class Person
include Mongoid::Document
field :age, type: Integer
field :name
field :sdate
end
そのモデルは、次のようなオブジェクトを生成します。
#<Person _id: 9xzy0, age: 22, name: "Lucas", sdate: "2013-10-07">
#<Person _id: 9xzy2, age: 32, name: "Paul", sdate: "2013-10-07">
#<Person _id: 9xzy3, age: 23, name: "Tom", sdate: "2013-10-08">
#<Person _id: 9xzy4, age: 11, name: "Joe", sdate: "2013-10-08">
誰かが mongoid map reduce を使用して、sdate フィールドでグループ化されたオブジェクトのコレクションを取得する方法を示すことができますか? そして、同じ sdate フィールドを共有する年齢の合計を取得するには?
私はこれを認識しています: http://mongoid.org/en/mongoid/docs/querying.html#map_reduce しかし、それが実際の例に適用されることを確認するのに役立つでしょう。私が推測するモデルでは、そのコードはどこに行きますか、必要なスコープなどです.
私は mongoid で簡単な検索を行い、配列を取得し、必要なものを手動で作成できますが、ここでは map reduce が適していると思います。そして、mongoid のページで言及されているこれらの js 関数は、これらの操作を内部的に行う DB にフィードされると思います。アクティブなレコードから来るこれらの新しい概念は少し奇妙です。
Rails 4.0、Ruby 1.9.3、Mongoid 4.0.0、Heroku (mongolab) の MongoDB 2.4.6 を使用していますが、更新する必要がある 2.0 をローカルに持っています。
ありがとう。