【问题标题】:Mongoid finders not working?Mongoid 查找器不起作用?
【发布时间】:2011-06-15 14:42:12
【问题描述】:

我已经设置了一个 rails3+mongoid 应用程序,当我打开 rails 控制台时,似乎没有一个查找器工作 - http://d.pr/FNzC

User.all
User.find(:all, :conditions => { first_name => "John" })

都返回:

#<Mongoid::Criteria
  selector: {},
  options:  {}>

我做错了吗?

【问题讨论】:

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


    【解决方案1】:

    好的,这就是让 mongoid 对新手感到恼火的部分原因。人们期望像 User.all 这样的方法实际上只返回 Criteria 对象时返回一个数组。

    为了提供链式方法和其他花哨的查询机制的语法糖,Mongoid 似乎使用了延迟加载类型的东西。

    你可以这样做:

    #array index
    User.all[0]
    
    #first/last
    User.all.first
    
    #each over things, print out all the users
    User.all.each {|u| p u}
    
    #edit, I forgot to include this, which is probably what you really want
    #this spits out an array
    User.all.to_a
    

    很难从 ActiveRecord 中快速验证事情是否适用于 User.all 只返回一个数组的新手。

    【讨论】:

    • 当然。尽管他们有文档,但似乎并没有表明指针实际上创建了您必须迭代的标准对象。正如你所说,对于熟悉 AR 课程的新手来说,这有点刺激。
    • 使用.to_a时遇到连接错误怎么办?
    【解决方案2】:

    试试这个:

        User.all.first        
        User.find(:first, :conditions => {:first_name => 'John'})    
        User.where(:first_name => 'John').first
    

    【讨论】:

      【解决方案3】:

      这很好用..

       User.all.entries
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-04
        • 1970-01-01
        相关资源
        最近更新 更多