2012-06-13 13 views
6

Ich habe mit Mongo hantiert, aber dieses einfache Beispiel kann nicht funktionieren. Ich versuche einfach, alle Dokumente in einer Sammlung abzurufen:Finden aller Dokumente in einer Sammlung mit Mongoid

require 'mongoid' 

# configuration ...  

class Category 

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

end 

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

ich den Fehler: undefined method 'each' for Category:Class (NoMethodError).

Verbindung zur Datenbank ist gut etabliert, und eine Sammlung categories enthält einige Dokumente genannt.

Antwort

12

Category hat in der Tat keine Methode each, weil es eine Modellklasse ist, keine Sammlung. Es gibt jedoch mehrere Methoden, die sammlungsähnliche Objekte zurückgeben. Einer von ihnen ist all. So sollte der Code so aussehen:

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

Gibt es irgendwelche Auswirkungen auf die Leistung zwischen Category.all.count und Category.count? –

+0

@ManojMJ: Nein, es ist genau die gleiche Abfrage. –

+1

Es funktioniert, aber ich finde keine Hinweise darauf in Dokumenten o_0? – rocketspacer

Verwandte Themen