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

B S*_*ven 3 arrays ruby-on-rails mongodb mongoid ruby-on-rails-4

如果该字段是整数,则执行以下操作:

User.where(id: [1,3,5])    
Run Code Online (Sandbox Code Playgroud)

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

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

Rails 4.1.7
Mongoid 5.0.0

编辑:添加了 Mongoid。

mu *_*ort 5

我不确定 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
Run Code Online (Sandbox Code Playgroud)

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