2010-09-16 16 views
5

क्या कुछ प्रकार का find_by_sql mongoid के बराबर है, जहां आप एक मोंगो क्वेरी पास करते हैं और यह परिणाम से Mongoid :: दस्तावेज़ों को पूरा करता है?find_by_sql mongoid के बराबर है?

उत्तर

8

Mongoid संग्रह वर्ग को उचित वर्ग की वस्तुओं को वापस करने के लिए लपेटता है।

तो, अगर उपयोगकर्ता एक Mongoid मॉडल है:

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

संपादित करें जोड़ने के लिए: यह वास्तव में मोंगो के कर्सर वर्ग भी गिर्द घूमती है। Moped: See here:

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

यह बिल्कुल अद्भुत है! क्या आप जानते हैं कि कैसे mongo चालक मेरी mongoid कक्षा को पूरा करने के लिए जानता है? –

2

आप Mongoid 3 उपयोग कर रहे हैं, यह अपने MongoDB ड्राइवर तक आसानी से पहुँचा जा सकता है। यहां डेटा तक पहुंचने के लिए मॉडल का उपयोग किए बिना कुछ कच्चे डेटा तक पहुंचने का एक उदाहरण दिया गया है:

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