Mongoidを使用しています。次のようなドキュメントがあります。
Pet:
foo: {bar: 1, foobar: 2}
another_attr: 1
この場合、できればMongoidを使用して、another_attrが1に等しい0より大きいバー値を持つすべてのペットをクエリするにはどうすればよいですか?
mongoシェルの場合:
db.pets.find({"foo.bar":{$gt:0}, another_attr:1});
モンゴイドの場合:
Pet.where(:'foo.bar'.gt => 0, :another_attr => 1)
バーの値が 0 より大きいすべてのペットを検索するには、クエリで $gt キーワードを使用できます。ネストされたフィールド (バー) にアクセスするには、ドット表記を使用できます。
db.pet.find( {"foo.bar" : {$gt : 0}})
次に、another_attr が 1 であることも要求するには、クエリに別の要件を追加するだけです。
db.pet.find( {"foo.bar" : {$gt : 0} , another_attr : 1 } )
高度なクエリに関するドキュメントは、http ://www.mongodb.org/display/DOCS/Advanced+Queries にあります。