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

问题描述 投票:0回答:2

使用 Ruby on Rails 中的常规 ActiveRecord/SQL 设置,当我在控制台中执行命令

*.where
*.all
等时,我会取回实际的记录项数组。 然而,在切换到 Mongoid 后,我反而得到了一个标准。 如何获得实际结果?

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

ruby-1.9.2-p180 :001 > App.all
 => #<Mongoid::Criteria
  selector: {},
  options:  {},
  class:    App,
  embedded: false>
ruby-on-rails-3 mongoid activemodel
2个回答
25
投票

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

您需要做的就是使用

each
map
或任何数组方法迭代结果,如下所示:

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

或者,如果您只想要数组,您可以根据条件调用

to_a

App.all.to_a

19
投票

App.all.entries
也有效。

© www.soinside.com 2019 - 2024. All rights reserved.