Esiste una sorta di equivalente find_by_sql per mongoid, dove si passa una query mongo e si materializza Mongoid :: Document s dai risultati?find_by_sql equivalente per mongoid?
5
A
risposta
8
Mongolo avvolge l'oggetto Raccolta per restituire oggetti della classe corretta.
Quindi, se l'utente è un modello Mongoid:
cursor = User.collection.find({}, {}) # Just like the Ruby driver...
records = cursor.to_a # An array of User objects
Modifica per aggiungere: In realtà avvolge classe Cursore di Mongo troppo. See here:
def each
@cursor.each do |document|
yield Mongoid::Factory.build(@klass, document)
end
end
2
Se stai usando Mongoid 3, fornisce un facile accesso al suo driver MongoDB: Moped. Ecco un esempio di accesso ad alcuni dati grezzi senza utilizzare Modelli per accedere ai dati:
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
che è assolutamente incredibile! sai come il mongo sa materializzare la mia classe mongolo? –