2010-10-30 20 views
15

Estoy obteniendo múltiples objetos JSON similares desde un sitio remoto y buscando almacenarlos en un MongoDB local.Rieles: Almacenar JSON en MongoDB

¿Cuál sería la mejor manera de hacerlo? (Preferiblemente a través de MongoId o Mongo mapeador de gemas)

Gracias

Respuesta

23

Puede usar un campo mongoide de tipo Hash o un documento incrustado.

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

Para las últimas versiones: campo: some_data, tipo: Hash –

12

Si lo que desea almacenar su JSON en Mongo que no es necesario Mongoid o MongoMapper. Sólo tiene que utilizar el Mongo-rubí controlador

require 'mongo' 

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

Con que se almacenan en la base de datos de la muestra-db en la prueba recogida

1

encontrado a la Yo puedo poner los datos directamente en MongoId sin definir los campos:

SomeMongoidObject['dynamic_attribute'] = json_data

+0

Una buena solución, pero me gustaría ver mongoid apoyar campos JSON como una opción. – mydoghasworms

+0

He registrado esto como un problema en GitHub: https://github.com/mongoid/mongoid/issues/1603 – mydoghasworms

+0

Obtuve comentarios sobre el problema. Aparentemente puede usar el tipo de campo Hash o documento incrustado. Han publicado una respuesta como tal aquí. – mydoghasworms

Cuestiones relacionadas