2012-06-13 28 views
6

He estado jugando con Mongo, pero no puedo hacer que funcione este simple ejemplo. Simplemente estoy tratando de recuperar todos los documentos en una colección:Encontrar todos los documentos en una colección con Mongoid

require 'mongoid' 

# configuration ...  

class Category 

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

end 

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

me sale el error: undefined method 'each' for Category:Class (NoMethodError).

de conexión a la base de datos está bien establecida, y una colección denominada categories contiene algunos documentos.

Respuesta

12

Category de hecho no tiene un método each porque es una clase de modelo, no una colección. Sin embargo, tiene varios métodos que devuelven objetos similares a colecciones. Uno de ellos es all. Entonces el código debería verse así:

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

¿Hay algún impacto en el rendimiento entre Category.all.count y Category.count? –

+0

@ManojMJ: no, es exactamente la misma consulta. –

+1

Funciona, pero no puedo encontrar ninguna referencia en los documentos o_0? – rocketspacer

Cuestiones relacionadas