【问题标题】:How to make a query with or condition in mongoid如何在 mongoid 中使用 or 条件进行查询
【发布时间】:2011-09-29 13:59:31
【问题描述】:

如何在 Mongoid 中使用 or 条件进行查询。

【问题讨论】:

    标签: ruby-on-rails ruby mongodb mongoid


    【解决方案1】:

    这是mongoid中“OR”查询的解决方案。

    如果你想像下面这样查询

    select * from user where id = 10 or name = 'hitesh';

    在带有 mongoid 的 Rails 中,你必须像这样编写查询

    User.any_of({id: 10},{name: 'hitesh'}).first

    【讨论】:

      【解决方案2】:

      这也有效:

      User.or({id: 10},{name: 'hitesh'})

      【讨论】:

        【解决方案3】:

        @Simone Carletti 是对的,但您也可以使用“mongo-style”表示法:

        # Ruby 1.9+
        Person.where(last_name: {"$in" => ["Penn", "Teller"]})
        #Ruby 1.9-
        Person.where(:las_name => {"$in" => ["Penn", "Teller"]})
        

        或者干脆

        Person.where(:last_name.in => ["Penn", "Teller"])
        

        更新

        两个字段的条件?

        Person.where(:last_name.in => ["Penn", "Teller"], :first_name.in => ["Pedro", "Julio"])
        

        【讨论】:

        • 我需要两个字段的 or 条件,比如说名字和姓氏
        • @fl00r 你知道如何让这个查询属于OR 而不是AND 我的意思是last_name.in ... OR first_name.in: ...?目前它执行AND。请参阅这个问题了解我的意思:stackoverflow.com/questions/23981407/…
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-04
        • 2011-06-25
        • 2011-09-27
        相关资源
        最近更新 更多