如何从rails应用程序上的ruby获取mongodb数据库和集合列表的列表

use*_*773 11 ruby-on-rails mongodb mongoid

我正在使用Rails 3和Mongoid gem.但我需要用mongodb数据库列表填充一个组合框.在mongodb shell中,我们可以使用"show dbs"命令列出数据库.mongodb驱动程序中还有getDBNameList()和db.getCollectionNames()命令.但我无法弄清楚如何在rails应用程序上使用ruby中的这些命令.

我也在想; 如果我可以使用mongoid gem获取数据库和集合列表.因为我确信我已经读过mongoid支持使用多个数据库,但我认为它依赖于模型.

所以你怎么看; 有什么解决方案,或者我必须使用mongo-ruby-driver gem,而不是mongoid.

Har*_*tty 15

在mongoid 3

Mongoid.default_session.collections # returns the collections
Run Code Online (Sandbox Code Playgroud)

我通常提取名称如下:

Mongoid.default_session.collections.map(&:name).sort
Run Code Online (Sandbox Code Playgroud)

  • 在mongo 5中default_session是default_client (2认同)

Ste*_*eve 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
Run Code Online (Sandbox Code Playgroud)