2012-06-13 3 views
6

Я играл с Монго, но не могу заставить этот простой пример работать. Я просто пытаюсь получить все документы в коллекции:Поиск всех документов в коллекции с Mongoid

require 'mongoid' 

# configuration ...  

class Category 

    include Mongoid::Document 
    field :name, type: String 

end 

Category.each do |test| 
    puts test.inspect 
end 

Я получаю ошибку: undefined method 'each' for Category:Class (NoMethodError).

Подключение к базе данных хорошо изученное, и коллекция имени categories содержит несколько документов.

ответ

12

Category действительно не имеет способа each, потому что это класс модели, а не коллекция. Однако у него есть несколько методов, которые возвращают объекты, подобные коллекциям. Один из них - all. Таким образом, код должен выглядеть так:

Category.all.each do |test| 
    puts test.inspect 
end 
+0

Возникла ли разница в производительности между Category.all.count и Category.count? –

+0

@ManojMJ: нет, это точно такой же запрос. –

+1

Это работает, но я не могу найти ссылки на него в документах o_0? – rocketspacer

Смежные вопросы