Gibt es eine Art von find_by_sql-Äquivalent für Mongoid, wo Sie eine Mongo-Abfrage übergeben und es Mongoid :: Document s aus den Ergebnissen materialisiert?find_by_sql Entsprechung für Mongoid?
5
A
Antwort
8
Mongoid umschließt das Collection-Objekt, um Objekte der richtigen Klasse zurückzugeben.
Also, wenn der Nutzer ein Mongoid Modell ist:
cursor = User.collection.find({}, {}) # Just like the Ruby driver...
records = cursor.to_a # An array of User objects
Bearbeiten hinzuzufügen: Es wickelt tatsächlich Mongo ist zu Cursor-Klasse. See here:
def each
@cursor.each do |document|
yield Mongoid::Factory.build(@klass, document)
end
end
2
Wenn Sie mit Mongoid 3, bietet es einen einfachen Zugang zu seinen MongoDB-Treiber: Moped. Hier ist ein Beispiel für den Zugriff auf einige Rohdaten, ohne dass Modelle für den Zugriff auf die Daten verwendet werden:
das ist absolut erstaunlich! Weißt du, wie der Mongo-Fahrer meine Mongoklasse verwirklichen kann? –