2010-09-16 19 views

Respuesta

8

Mongoid envuelve el objeto Collection para devolver objetos de la clase adecuada.

Por lo tanto, si el usuario es un modelo Mongoid:

cursor = User.collection.find({}, {}) # Just like the Ruby driver... 
records = cursor.to_a # An array of User objects 

Editar para agregar: En realidad envuelve la clase Cursor de Mongo también. See here:

def each 
    @cursor.each do |document| 
    yield Mongoid::Factory.build(@klass, document) 
    end 
end 
+0

¡eso es absolutamente increíble! ¿sabes cómo el conductor de mongo sabe materializar mi clase mongoid? –

2

Si está utilizando Mongoid 3, que proporciona un fácil acceso a su conductor MongoDB: Moped. Aquí hay un ejemplo de acceso a algunos datos en bruto sin usar Modelos para acceder a los datos:

db = Mongoid::Sessions.default 
collection = db[:collection_name] 

# finding a document 
doc = collection.find(name: 'my new document').first 

collection.find.each do |document| 
    puts document.inspect 
end