如何从rails应用程序上的ruby获取mongodb数据库和集合列表的列表
我正在使用Rails 3和Mongoid gem。 但我需要用mongodb数据库列表填充一个combobox。 在mongodb shell中,我们可以使用“show dbs”命令列出数据库。 mongodb驱动程序中还有getDBNameList()和db.getCollectionNames()命令。 但我无法弄清楚如何在rails应用程序上使用来自ruby的这些命令。
我也在想; 如果我可以使用mongoid gem获取数据库和集合列表。 因为我确信我已经读过mongoid支持使用多个数据库,但我认为它依赖于模型。
所以你怎么看; 有什么解决方案,或者我必须使用mongo-ruby-driver gem,而不是mongoid。
在mongoid 3
Mongoid.default_session.collections # returns the collections
我通常提取名称如下:
Mongoid.default_session.collections.map(&:name).sort
您可以使用mongo ruby驱动程序执行以下操作:
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
从Mongoid配置中获取Mongo :: DB会更容易:
db = Mongoid::Config.master db.collection_names
一个简短的版本。
db = Mongoid.master db.collection_names
使用Java驱动程序,您可以使用以下内容列出数据库名称
Mongo mongo = new Mongo( "127.0.0.1" ); mongo.getDatabaseNames();