如何检查Mongoid数组字段是否包含另一个数组中的一个或多个项目?

时间:2015-10-06 21:04:52

标签: ruby-on-rails arrays mongodb ruby-on-rails-4 mongoid

如果该字段是整数,则以下方法有效:

User.where(id: [1,3,5])    

但是如果该字段是一个数组怎么办?例如,用户的字段是favorite_numbers

的数组

如何查找favorite_number为1,3或5的用户?

Rails 4.1.7
Mongoid 5.0.0

编辑:添加了Mongoid。

1 个答案:

答案 0 :(得分:3)

我不确定Mongoid 5,但$in运算符应该注意展开右侧:

User.where(:favorite_numbers.in => [1,3,5])
# or
User.where(favorite_numbers: { :$in => [1,3,5] })
User.where(favorite_numbers: { '$in' => [1,3,5] })
User.where(favorite_numbers: { '$in': => [1,3,5] }) # depending on Ruby version

MongoDB本身将负责展开favorite_numbers数组。