【问题标题】:Query is not executing in rails app using mongomapper使用 mongomapper 在 Rails 应用程序中未执行查询
【发布时间】:2012-02-02 10:05:10
【问题描述】:

在我的 Rails 应用程序中,我正在编写 mongo db 查询到它应该执行 AND 操作的集合 (示例:基本上我想要来自 city=delhi 和 gender=male 的集合中的所有用户详细信息)。我被困在这个,我指的是这个链接。 http://mongomapper.com/documentation/plugins/querying.html。即使我已经关注了以下链接MongoMapper OR clause on 2 columns - Rails 3.1.rc4。但是没有任何效果,我是新手,我不知道这是正确的方法还是有什么方法,请帮助我。

我正在使用 rails 3.1 和 mongo_mapper ORM。

查询详情:

@c=Customer.where(:$and => [:gender => "Male",:city => "DELHI/NCR"])

Output: #<Plucky::Query $and: [{:gender=>"Male", :city=>"DELHI/NCR"}], transformer: #<Proc:0xe6429b4@/home/vijay/.rvm/gems/ruby-1.9.2-p290/gems/mongo_mapper-0.11.0/lib/mongo_mapper/plugins/querying.rb:79 (lambda)>>

我试过了,也没用

@c=Customer.where(:$and =&gt; [{:gender =&gt; "Male"},{:city =&gt; "DELHI/NCR"}])

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongomapper


    【解决方案1】:

    当您使用它时,它只会创建查询,您需要通过附加 .all 来“执行”它

    @customers = Customer.where(:gender => "Male", :city => "DELHI/NCR").all
    

    在此处阅读更多信息:http://mongomapper.com/documentation/plugins/querying.html#criteria

    【讨论】:

    • 但是如何使用 $and ,$or 操作呢?
    • 如果您有一个逗号分隔的列表 AND 是隐含的,要获得与 OR 相同的查询,它将是 @customers = Customer.where('$or' => [{:gender => 'Male '},{:city => 'DELHI/NCR'}]).all
    • 更多高级查询请阅读此处:mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries
    • Customer.where('$or' => [{:gender => 'Male'},{:city => 'DELHI/NCR'}]).all 这个查询不起作用? ?
    • 你能试试 :$or 代替 '$or' 吗?两者都在这里工作,但我可能有一个稍微旧版本的 mongomapper
    【解决方案2】:
    @c = Customer.where(:gender => "Male",:city => "DELHI/NCR").all
    

    【讨论】:

    • 但是如何使用 $and ,$or 操作呢?
    • 使用示例,其中性别为男性和城市 DELHI/NCR 或 Noida/NCR @c = Customer.where(:gender => 'Male', '$or' => [{:city = >"DELHI/NCR"},{:city=>"Noida/NCR"}]).all
    • 上述查询不起作用,它给出了一个空数组。但在我的数据库数据中有
    • 我检查查询,你需要检查数据库中的数据。执行这个:1)Customer.where(:gender =&gt; "Male").count 2)Customer.where(:city =&gt; "DELHI/NCR").count
    【解决方案3】:

    请注意,您不需要同时使用 whereall

    你可以简单地写:

    @customers = Customer.all(:gender => "Male", :city => "DELHI/NCR")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 2010-11-17
      相关资源
      最近更新 更多