Чтение существующей базы данных Монго - PullRequest
0 голосов
/ 01 марта 2012

Я должен прочитать существующую базу данных Монго.Подходит ли для этого 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 ]

2 голосов
/ 01 марта 2012

Я попробовал mongomapper после того, как попробовал mongoid, и он делает именно то, что следует из его названия.

Допустим, у меня есть коллекция под названием User в mongodb, которая относится к пользователю в игре, но нене обязательно относится к модели User для этого приложения, тогда я использую set_collection_name "User" в модели, например, под названием GameUser.

Мой инициализатор поднимается прямо из документации mongodb;которые используют 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.

0 голосов
/ 01 марта 2012

Это зависит от того, что содержит существующая база данных и что вы хотите с ней делать.Если он содержит только некоторые необработанные данные, которые не относятся к Rails, вы можете использовать универсальный драйвер ruby ​​ для выполнения необработанных запросов к базе данных.

Если база данных была создана с помощью Rails идолжен представлять модели и другие объекты Rails, вам следует использовать объектный маппер , с которым он был создан (сомневаюсь, что это так).

...