Mongoid 查找器不起作用?
Posted
技术标签:
【中文标题】Mongoid 查找器不起作用?【英文标题】:Mongoid finders not working? 【发布时间】: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: >
我做错了吗?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Mongoid 查找器不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
Mongoid 聚合 $match 与 Date 对象不起作用?