2012-03-19 5 views
1

タグは文書内の内部配列であり、 タグには 'a'と 'b'と( 'c'または 'd' )MongoMapper複合クエリ

mongomapperでこれを行うことはできますか? mongomapperで

db.test.find({$and:[{tags:'a'},{tags:'b'}, {$or:[{tags:'c'}, {tags:'d'}] }]}) 

、この試してみてください:

答えて

1

基本的には、このようなクエリ実行する必要がありmpobrienの回答に基づいて

Test.where({ 
    "$and" => [ 
    :tags => 'a', 
    :tags => 'b', 
    "$or" => [:tags => 'c', :tags => 'd'] 
    ] 
}) 
0

を...しかし、正しい構文を持ちます:

Test.where(
    :tags.all => ['a', 'b'], 
    :$and => [{:tags.in => ['c', 'd']}] 
) 

またはさらに直接Mongolike ...

+1

「:tags.all => [...]、:tags.in => [...] 'のためにおそらく[plucky](https:// github .com/jnunemaker/plucky/blob/master/lib/plucky/criteria_hash.rb)はクエリを解決します。したがって、余分な ':$ and'節が解決されます。 –