モンゴイドの条件

私は2つのクエリを持っています。

Post.where(:group_id.in => group_ids, :deleted => false) Post.where(:user_id=>user.id,:deleted=>false)

私はこれらのクエリを使用して条件を組み合わせる必要があります。 私は、

Post.where(:deleted => false).or({:user_id=>user.id},{:group_id.in => group_ids}) and Post.any_of({:group_id.in=>group_ids},{:user_id=>user.id}) but I didn't get results.

7
だから基本的に、これら2つのクエリの結果をマージしたいですか?
追加された 著者 Devin M,

1 答え

あなたはそれを次のようにすることができます:

Post.any_of({:group_id.in => group_ids, :deleted => false}, {:user_id => user.id, :deleted => false})

または:

Post.all_of(:deleted => true, :or => [{:group_id.in => group_ids}, {:user_id => user.id}])

これらの式のいずれかで selector を呼び出して、データをフェッチするために生成されるmongodbクエリを表示できます。

23
追加された
ありがとう。私はmongo 1.2.1で作業していましたが、1.8.1にアップグレードすると動作しています。
追加された 著者 sssskkk,