1

私はRailsアプリケーションでモデルのモンゴDBを使用しています、と私は実行時にmongomapperの論理的な "and"クエリに問題がありますか?

Model.where(:$or => [{:field1 => true}, {:field2 => true}]) 

は勇敢なクエリに

#<Plucky::Query $or: [{:field1=>true}, {:field2=>true}], transformer: #<Proc:[email protected]/home/x/.rvm/gems/[email protected]/gems/mongo_mapper-0.9.2/lib/mongo_mapper/plugins/querying.rb:79 (lambda)>> 

行いOR演算を生成し、正しい結果を取得し、すなわち、フィールド1またはフィールド2真のですが、

Model.where(:$and => [{:field1 => true}, {:field2 => true}]) 

は勇敢なクエリを生成

#<Plucky::Query $and: {"$in"=>[{:field1=>true}, {:field2=>true}]}, transformer: #<Proc:[email protected]/home/x/.rvm/gems/[email protected]/gems/mongo_mapper-0.9.2/lib/mongo_mapper/plugins/querying.rb:79 (lambda)>> 

ではなく、それは誤り

モンゴをスローし、AND演算を実行しません:: OperationFailure例外:$および式が空でない 配列

DETAILS

でなければなりませんRailsバージョン:3.1、 Mongoバージョン:2.0.0、 mongo_mapper gemバージョン:0.9.2

答えて

1

MongoMapperをアップグレードする必要があります。 $andサポートがplucky 0.4.xで追加されました。MongoMapperはバージョン0.10.1で使用しています。

This commit$andが支持されており、0.4.2以上の部分がある。

This commit更新されたMongoMapperはplucky 0.4.xを使用するように更新され、MM 0.10.1以上の一部です。

+0

sweet !!ありがとう.. – n00b

関連する問題