或者是mongoid的条件

时间:2011-11-25 05:32:03

标签: ruby-on-rails mongodb mongoid

我有两个问题,

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})Post.any_of({:group_id.in=>group_ids},{:user_id=>user.id}) 但我没有得到结果。

1 个答案:

答案 0 :(得分:23)

你可以这样做:

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查询以获取数据。