【发布时间】:2011-09-29 13:59:31
【问题描述】:
如何在 Mongoid 中使用 or 条件进行查询。
【问题讨论】:
标签: ruby-on-rails ruby mongodb mongoid
如何在 Mongoid 中使用 or 条件进行查询。
【问题讨论】:
标签: ruby-on-rails ruby mongodb mongoid
这是mongoid中“OR”查询的解决方案。
如果你想像下面这样查询
select * from user where id = 10 or name = 'hitesh';
在带有 mongoid 的 Rails 中,你必须像这样编写查询
User.any_of({id: 10},{name: 'hitesh'}).first
【讨论】:
这也有效:
User.or({id: 10},{name: 'hitesh'})
【讨论】:
@Simone Carletti 是对的,但您也可以使用“mongo-style”表示法:
# Ruby 1.9+
Person.where(last_name: {"$in" => ["Penn", "Teller"]})
#Ruby 1.9-
Person.where(:las_name => {"$in" => ["Penn", "Teller"]})
或者干脆
Person.where(:last_name.in => ["Penn", "Teller"])
更新
两个字段的条件?
Person.where(:last_name.in => ["Penn", "Teller"], :first_name.in => ["Pedro", "Julio"])
【讨论】:
OR 而不是AND 我的意思是last_name.in ... OR first_name.in: ...?目前它执行AND。请参阅这个问题了解我的意思:stackoverflow.com/questions/23981407/…