2010-09-16 2 views

ответ

8

Mongoid обертывает объект Collection, чтобы возвращать объекты соответствующего класса.

Таким образом, если пользователь является модель Mongoid:

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

Изменить, чтобы добавить: Это на самом деле обертывания класса Cursor Монго тоже. See here:

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

это абсолютно потрясающе! знаете ли вы, как гонщик-гонщик знает, как материализовать мой класс mongoid? –

2

Если вы используете Mongoid 3, он обеспечивает легкий доступ к своему драйверу MongoDB: Moped. Ниже приведен пример доступа к некоторым исходным данным без использования моделей для доступа к данным:

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 
Смежные вопросы