【问题标题】:How to check if an Mongoid array field contains one or more items in another array?如何检查 Mongoid 数组字段是否包含另一个数组中的一个或多个项目?
【发布时间】:2016-01-03 22:43:10
【问题描述】:
如果字段是整数,则以下工作:
User.where(id: [1,3,5])
但是如果字段是一个数组呢?例如,用户有一个字段是favorite_numbers的数组:
如何找到 favorite_number 为 1、3 或 5 的用户?
Rails 4.1.7
Mongoid 5.0.0
编辑:添加了 Mongoid。
【问题讨论】:
标签:
ruby-on-rails
arrays
mongodb
ruby-on-rails-4
mongoid
【解决方案1】:
我不确定 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 数组。