Mongoid:和-或查询 [英] Mongoid: And - Or query
本文介绍了Mongoid:和-或查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个查询:
User.or( { name: 'John' }, { name: 'Sara' } ).or( { age: 17 }, { age: 18 } ) )
它返回下一个条件:
#<Mongoid::Criteria
selector: {"enabled"=>true, "$or"=>[{"name"=>"John"}, {"name"=>"Anoun"}, {"age"=>17}. {"age"=>18}]}
options: {}
class: User
embedded: false>
但是我想在两个或"之间执行与"操作,并返回如下内容:
But I want to do 'and' betweend two 'or' that return something like this:
#<Mongoid::Criteria
selector: {"enabled"=>true, "$and"=>[
{"$or"=>[{"name"=>"John"}, {"name"=>"Anoun"}]},
{"$or"=>[{"age"=>17}, {"age"=>18}]}
] }
options: {}
class: User
embedded: false>
查询怎么样?
推荐答案
这可能对您有帮助,
User.where(enabled: true)
.and(
User.or( { name: 'John' }, { name: 'Sara' } ).selector,
User.or( { age: 17 }, { age: 18 } ).selector
)
这将返回:
#<Mongoid::Criteria
selector: {"enabled"=>true, "$and"=>[{"$or"=>[{"name"=>"John"}, {"name"=>"Sara"}]}, {"$or"=>[{"age"=>17}, {"age"=>18}]}]}
options: {}
class: User
embedded: false>
这篇关于Mongoid:和-或查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文