使用Mongoid获取实际的结果数组

时间:2011-07-07 06:56:34

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

在Rails中使用常规ActiveRecord / SQL设置,在执行命令*.where*.all等时在控制台中,我返回实际的记录项数组。但是,在切换到Mongoid之后,我改回了一个标准。我如何得到实际结果?

这就是我现在得到的......

ruby-1.9.2-p180 :001 > App.all
 => #<Mongoid::Criteria
  selector: {},
  options:  {},
  class:    App,
  embedded: false>

2 个答案:

答案 0 :(得分:25)

当您在Mongoid中查询模型时,它会返回一个条件对象(如您所述),在您从条件请求数据之前,它实际上不会运行查询。

您需要做的就是使用eachmap或任何数组方法迭代结果,如下所示:

App.all.each do |app|
  puts app.name
end

或者,如果您只想要数组,则只需按标准调用to_a

App.all.to_a

答案 1 :(得分:17)

App.all.entries也适用。