यहां एक (संभवतः) बेहतर मिनी-ट्यूटोरियल है कि सीधे अपने मोंगोडीबी की हिम्मत में कैसे पहुंचे। यह आपकी विशिष्ट समस्या का समाधान नहीं कर सकता है, लेकिन यह आपको SELECT * FROM table
के MongoDB संस्करण तक ले जाना चाहिए ।
सबसे पहले, आपको एक Mongo::Connection
. चाहिए वस्तु। यदि आप MongoMapper का उपयोग कर रहे हैं तो आप connection
. पर कॉल कर सकते हैं कनेक्शन प्राप्त करने के लिए अपने किसी भी MongoMapper मॉडल पर क्लास विधि या सीधे MongoMapper से इसके लिए पूछें:
connection = YourMongoModel.connection
connection = MongoMapper.connection
अन्यथा मुझे लगता है कि आप from_uri
. का उपयोग करेंगे कंस्ट्रक्टर अपना खुद का कनेक्शन बनाने के लिए।
फिर आपको डेटाबेस पर अपना हाथ लाने की आवश्यकता है, आप इसे ऐरे एक्सेस नोटेशन, db
का उपयोग करके कर सकते हैं विधि, या सीधे MongoMapper से वर्तमान प्राप्त करें:
db = connection['database_name'] # This does not support options.
db = connection.db('database_name') # This does support options.
db = MongoMapper.database # This should be configured like
# the rest of your app.
अब आपके पास एक अच्छा चमकदार Mongo::DB
है उदाहरण आपके हाथ में है। लेकिन, आप शायद एक Collection
चाहते हैं कुछ भी दिलचस्प करने के लिए और आप इसे ऐरे एक्सेस नोटेशन या Collection
. का उपयोग करके प्राप्त कर सकते हैं विधि:
collection = db['collection_name']
collection = db.collection('collection_name')
अब आपके पास कुछ ऐसा है जो SQL तालिका की तरह व्यवहार करता है ताकि आप count
. कर सकें find
. का उपयोग करके इसमें कितनी चीज़ें हैं या इसे क्वेरी करें :
cursor = collection.find(:key => 'value')
cursor = collection.find({:key => 'value'}, :fields => ['just', 'these', 'fields'])
# etc.
और अब आपके पास वह है जो आप वास्तव में चाहते हैं:ओवन से बाहर एक गर्म Mongo::Cursor
जो उस डेटा की ओर इशारा करता है जिसमें आपकी रुचि है। Mongo::Cursor
isan Enumerable
इसलिए आपके पास अपने सभी सामान्य पुनरावृत्त मित्रों जैसे each
. तक पहुंच है , first
, map
, और मेरे व्यक्तिगत पसंदीदा में से एक, each_with_object
:
a = cursor.each_with_object([]) { |x, a| a.push(mangle(x)) }
command
. भी हैं और eval
Mongo::DB
. पर तरीके वह वही कर सकता है जो आप चाहते हैं।