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