【问题标题】: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 数组。

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 2011-01-16
      • 2011-07-19
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2015-10-28
      • 2016-05-02
      相关资源
      最近更新 更多