读取现有的mongo数据库

时间:2012-03-01 09:19:30

标签: ruby-on-rails mongodb mongoid

我必须阅读现有的mongo数据库。 mongoid适合这个吗?

我找到的所有教程都是从头开始构建一个mongo数据库。

我尝试使用mongoid访问数据库,并且没有显示现有信息的运气,这就是我尝试过的。

mongoid.yml:

development:
  host: localhost
  database: managementdb

test:
  host: localhost
  database: managementdb

我做了一个脚手架(我不喜欢mongoid如何接管脚手架)

模特:

class GamerProfile
  include Mongoid::Document
  store_in :profile

  field :facebookId, :type => String
  field :playerName, :type => String
  field :locale, :type => String
  field :dateJoined, :type => Time
end

但是localhost:27017 / managementdb / Profile中的现有信息未显示在视图中。

我只需要只读访问权限。 mongomapper或mongomodel会更适合吗?

2 个答案:

答案 0 :(得分:2)

我尝试过mongoid之后尝试过mongomapper,它的名字就像它的名字所暗示的那样。

假设我在mongodb中有一个名为User的集合,它与游戏中的用户有关但不一定与该应用程序的User模型相关,那么我使用set_collection_name "User"例如,在名为GameUser的模型中。

我的初始化器直接取自mongodb docs;以mongomapper为例。

MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
MongoMapper.database = "gamedb"

我的模型看起来像这样:

class GameUser
  include MongoMapper::Document

  set_collection_name "User"
  key :playerName, :type => String
  ...
  key :dateJoined, :type => Time
end

现在我的脚手架完全加载了GameUser的数据。

答案 1 :(得分:0)

这取决于现有数据库包含的内容以及您要对其执行的操作。如果它只包含一些非特定于Rails的原始数据,则可以使用generic ruby driver对数据库进行原始查询。

如果数据库是使用Rails创建的,并且应该代表模型和其他Rails对象,则应该使用它创建的object mapper(我怀疑是这种情况)。