2011-09-29 50 views

回答

0

@Simone Carletti酒店是正确的,但你也可以使用 “蒙戈式” 符号:

# 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"]) 

UPD

条件两个领域?

Person.where(:last_name.in => ["Penn", "Teller"], :first_name.in => ["Pedro", "Julio"]) 
+0

我需要或两个字段的条件,可以说名字和姓氏 –

+0

我不知道我是否理解你,但结帐我的更新 – fl00r

+0

@ fl00r你知道如何使这个查询属于'OR'而不是'AND'我的意思是,'last_name.in ...或者first_name.in:...'?目前它做了一个“AND”。看到这个问题,我的意思是:http://stackoverflow.com/questions/23981407/how-do-i-find-an-object-whose-properties-foo-or-bar-equal-a-query-value –

1

下面是在mongoid “OR” 查询解决方案。

,如果你想查询像下面

select * from user where id = 10 or name = 'hitesh';

与mongoid轨

,那么你必须写这样的查询

User.any_of({id: 10},{name: 'hitesh'}).first

1

这也适用于:

User.or({id: 10},{name: 'hitesh'})