开发者

How to get list of mongodb databases and collections list from a ruby on rails app

I am using Rails 3 and Mongoid gem. But I need to fill a combo开发者_如何学Pythonbox with the list of mongodb databases. In mongodb shell we can list databases with "show dbs" command. Also there is getDBNameList() and db.getCollectionNames() commands in mongodb drivers. But I could not figure out how to use these commands from a ruby on rails app.

Also I wonder; if I can get databases and collections list with using mongoid gem. Because I am sure that I had read that mongoid supports using more than one database, but I think it was model dependent.

So what do you think; is there any solution or I have to use mongo-ruby-driver gem, not mongoid.


In mongoid 3

Mongoid.default_session.collections # returns the collections

I usually extract the names as follows:

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


You can do the following using the mongo ruby driver:

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


It would be easier to get the Mongo::DB out of the Mongoid config:

db = Mongoid::Config.master
db.collection_names


A short version.

db = Mongoid.master
db.collection_names
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜