2

Mongoidを使用しています。次のようなドキュメントがあります。

Pet:
  foo: {bar: 1, foobar: 2}
  another_attr: 1

この場合、できればMongoidを使用して、another_attrが1に等しい0より大きいバー値を持つすべてのペットをクエリするにはどうすればよいですか?

4

2 に答える 2

7

mongoシェルの場合:

db.pets.find({"foo.bar":{$gt:0}, another_attr:1});

モンゴイドの場合:

Pet.where(:'foo.bar'.gt => 0, :another_attr => 1)
于 2012-09-11T15:19:24.420 に答える
0

バーの値が 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 にあります。

于 2012-09-11T15:21:36.507 に答える