Как получить список баз данных и коллекций mongodb из приложения ruby ​​on rails - PullRequest
10 голосов
/ 28 февраля 2011

Я использую Rails 3 и монгоидный гем.Но мне нужно заполнить комбинированный список списком баз данных mongodb.В оболочке mongodb мы можем перечислить базы данных командой show dbs.Также в драйверах mongodb есть команды getDBNameList () и db.getCollectionNames ().Но я не мог понять, как использовать эти команды из приложения ruby ​​on rails.

Также мне интересно;Если я могу получить список баз данных и коллекций с использованием Mongoid Gem.Потому что я уверен, что я читал, что mongoid поддерживает использование более чем одной базы данных, но я думаю, что это зависит от модели.

Так что вы думаете;Есть ли какое-либо решение, или я должен использовать драгоценный камень монго-рубин, а не монгоид.

Ответы [ 5 ]

14 голосов
/ 30 июля 2012

В монгоиде 3

Mongoid.default_session.collections # returns the collections

Я обычно извлекаю имена следующим образом:

Mongoid.default_session.collections.map(&:name).sort
10 голосов
/ 28 февраля 2011

Вы можете сделать следующее, используя драйвер 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
3 голосов
/ 07 марта 2011

Было бы проще получить Mongo :: DB из конфигурации Mongoid:

db = Mongoid::Config.master
db.collection_names
2 голосов
/ 28 мая 2012

короткая версия.

db = Mongoid.master
db.collection_names
0 голосов
/ 20 марта 2014

Используя драйвер Java, вы можете перечислить имена баз данных с помощью следующих

Mongo mongo = new Mongo( "127.0.0.1" );
mongo.getDatabaseNames();
...