2011-02-28 15 views
9

मैं रेल 3 और Mongoid मणि उपयोग कर रहा हूँ पर एक गहरे लाल रंग का से MongoDB डेटाबेस और संग्रह सूची की सूची प्राप्त करने। लेकिन मुझे mongodb डेटाबेस की सूची के साथ एक combobox भरने की जरूरत है। Mongodb खोल में हम "शो dbs" कमांड के साथ डेटाबेस सूचीबद्ध कर सकते हैं। इसके अलावा वहाँ getDBNameList() और db.getCollectionNames() MongoDB ड्राइवरों में आदेश देता है। लेकिन मैं यह नहीं समझ पाया कि इन आदेशों का उपयोग रेल ऐप पर रूबी से कैसे किया जाए।कैसे रेल एप्लिकेशन

इसके अलावा मुझे आश्चर्य है; अगर मैं mongoid मणि का उपयोग कर डेटाबेस और संग्रह सूची प्राप्त कर सकते हैं। क्योंकि मुझे यकीन है कि मैंने पढ़ा था कि मोंगोइड एक से अधिक डेटाबेस का उपयोग करने का समर्थन करता है, लेकिन मुझे लगता है कि यह मॉडल निर्भर था।

तो तुम्हें क्या लगता है; क्या कोई समाधान है या मुझे मोंगो-रूबी-ड्रायवर मणि का उपयोग करना है, मोंगोइड नहीं।

उत्तर

10

आप मोंगो गहरे लाल रंग का चालक निम्नलिखित का उपयोग कर सकते हैं:

require 'rubygems' 
require 'mongo' 

connection = Mongo::Connection.new("localhost") 
connection.database_names.each do |name| 
    db = connection.db(name) 
    db.collections.each do |collection| 
    puts "#{name} - #{collection.name}" 
    end 
end 
3

यह Mongo::DB Mongoid config से बाहर निकलना आसान होगा:

db = Mongoid::Config.master 
db.collection_names 
+0

का उपयोग कर डेटाबेस के नाम सूचीबद्ध कर सकते हैं हम Mongoid (के माध्यम से सभी डेटाबेस को कॉन्फ़िगर कर सकते हैं mongoid.yml) dbs = Mongoid.databases dbs.each do | db | db.collections end – user622773

+0

कनेक्शन = Mongoid.master.connection connection.database_names # => नामों की एक सरणी प्राप्त करें db = connection.database ("name") # => एक विशिष्ट डीबी ऑब्जेक्ट प्राप्त करें db.collections # => एक सरणी प्राप्त करें संग्रह ##### मुझे लगता है कि यह सबसे अच्छा तरीका है; दुर्रान के लिए धन्यवाद (जिथूब से)। – user622773

+2

कि (mongoid 3.x पर) मेरे लिए काम नहीं लगता है: 'NoMethodError: अपरिभाषित विधि \' मास्टर 'Mongoid :: कॉन्फ़िग के लिए: Module' – turboladen

2

एक लघु संस्करण।

db = Mongoid.master 
db.collection_names 
+2

आप Mongoid 3.0.0 के साथ ऐसा कैसे करेंगे? – SteveO7

13

में mongoid 3

Mongoid.default_session.collections # returns the collections 

मैं आमतौर पर नाम इस प्रकार निकालें:

Mongoid.default_session.collections.map(&:name).sort 
+1

default_session मोंगो 5 में default_client है – Eddie

-1

का उपयोग जावा ड्राइवर आप निम्नलिखित

Mongo mongo = new Mongo("127.0.0.1"); 
mongo.getDatabaseNames(); 
संबंधित मुद्दे