2010-10-30 31 views
15

Ricevo più oggetti JSON simili da un sito remoto e cerco di archiviarli in un MongoDB locale.Rails: Archivia JSON in MongoDB

Quale sarebbe il modo migliore per farlo? (Preferibilmente tramite Mongoid o Mongo-mapper gemme)

Grazie

risposta

23

È possibile utilizzare un campo mongoid di tipo hash o un documento incorporato.

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

Per le ultime versioni: campo: some_data, digitare: Hash –

12

Se si desidera solo memorizzare il JSON in Mongo non è necessario Mongoid o MongoMapper. Basta usare il Mongo-ruby-pilota

require 'mongo' 

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

Con che si memorizza nel database di esempio-db in prova collezione

1

scoperto che posso solo mettere i dati direttamente in mongoid senza definire i campi:

SomeMongoidObject['dynamic_attribute'] = json_data

+0

Bel trucco, ma mi piacerebbe ancora vedere mongoid supporto campi JSON come opzione. – mydoghasworms

+0

Ho registrato questo come un problema su GitHub: https://github.com/mongoid/mongoid/issues/1603 – mydoghasworms

+0

Ho ricevuto feedback sul problema. Apparentemente puoi semplicemente usare il tipo di campo Hash o il documento incorporato. Ho postato una risposta come tale qui. – mydoghasworms