查询Mongo DB - 在嵌入式类中使用IN过滤器

时间:2013-01-17 11:06:44

标签: ruby-on-rails mongodb mongoid

考虑以下文档结构(用户

id user_id phone

1  Balan   {0   - id = adsfasf232332  - number = 908767778}, 
                       ...........{1   - id = adsf343fadfasd - number = 22232323}
2  Kumar   {0   - id = adsfasf24442  - number = 2727272}

什么是Mongo模型查询等效于以下查询

select * from  users where user_id = "Balan" and phone_number in (22232323)

我尝试使用以下查询,但它没有帮助

temp = User.where(user_id: => "Balan").where('phone.number' => "22232323")

我做错了什么?

注意:“手机”类已嵌入“用户”类中。

2 个答案:

答案 0 :(得分:1)

以下是解决方案:

temp = User.where(user_id: => "Balan",:'phone.number'.in => ["22232323"])

或者如果你想以不同的方式运行

temp = User.where(user_id: => "Balan").where(:'phone.number'.in => ["22232323"])

答案 1 :(得分:1)

如果你使用的是Mongoid 3,你可以说

temp = User.where(user_id: 'Balan').in('phone.number' => ['22232323'])

此查询语法由Origin(现在是Mongoid的依赖项)提供。 [1]