2010-10-30 2 views
15

Я получаю несколько похожих объектов JSON с удаленного сайта и хочу сохранить их в локальном MongoDB.Rails: Store JSON in MongoDB

Что было бы лучшим способом сделать это? (Предпочтительно через Mongoid или Монго-Mapper драгоценных камней)

Благодаря

ответ

23

Вы можете использовать поле mongoid типа Hash или встроенный документ.

class MyModel 
    include Mongoid::Document 
    field :some_data, :type => Hash 
end 
+0

Для последних релизов: field: some_data, type: Hash –

12

Если вы просто хотите сохранить ваши JSON в Монго вам не нужно Mongoid или MongoMapper. Просто используйте Монго-рубиновый-драйвер

require 'mongo' 

db = Mongo::Connection.new.db('sample-db') 
coll = db.collection('test') 
coll.insert(ActiveSupport::JSON.decode(you_json)) 

При том, что хранить в базе данных выборки-дб в тесте коллекции

1

Узнал я могу просто поместить данные непосредственно в Mongoid без определения полей:

SomeMongoidObject['dynamic_attribute'] = json_data

+0

Хорошее обходное решение, но я все равно хочу, чтобы в качестве опции отображались мангоиды, поддерживающие поля JSON. – mydoghasworms

+0

Я зарегистрировал это как проблему на GitHub: https://github.com/mongoid/mongoid/issues/1603 – mydoghasworms

+0

Получил отзыв о проблеме. Видимо, вы можете просто использовать поле типа Hash или встроенный документ. Здесь выложили ответ. – mydoghasworms