使用 Ruby on Rails 中的常规 ActiveRecord/SQL 设置,当我在控制台中执行命令
*.where
、*.all
等时,我会取回实际的记录项数组。 然而,在切换到 Mongoid 后,我反而得到了一个标准。 如何获得实际结果?
这就是我现在得到的...
ruby-1.9.2-p180 :001 > App.all
=> #<Mongoid::Criteria
selector: {},
options: {},
class: App,
embedded: false>
当您在 Mongoid 中查询模型时,它会返回一个条件对象(如您所述),在您从条件请求数据之前,它实际上不会运行查询。
您需要做的就是使用
each
或 map
或任何数组方法迭代结果,如下所示:
App.all.each do |app|
puts app.name
end
或者,如果您只想要数组,您可以根据条件调用
to_a
:
App.all.to_a
App.all.entries
也有效。