2010-10-30 37 views
15

Tôi nhận được nhiều đối tượng JSON tương tự từ một trang web từ xa và tìm cách lưu trữ chúng trong một MongoDB cục bộ.Đường ray: Lưu trữ JSON trong MongoDB

Cách tốt nhất để làm điều này là gì? (Tốt nhất là qua Mongoid hoặc Mongo-mapper đá quý)

Cảm ơn

Trả lời

23

Bạn có thể sử dụng trường kiểu mông cổ loại Hash hoặc tài liệu được nhúng.

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

Đối với các bản phát hành mới nhất: trường: some_data, loại: Hash –

12

Nếu bạn chỉ muốn lưu trữ JSON của bạn trong Mongo bạn không cần Mongoid hoặc MongoMapper. Chỉ cần sử dụng Mongo-ruby-lái xe

require 'mongo' 

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

Với mà bạn lưu trữ trong cơ sở dữ liệu mẫu-db trong thử nghiệm bộ sưu tập

1

Tìm thấy ra tôi chỉ có thể đưa dữ liệu trực tiếp vào mongoid mà không cần xác định các lĩnh vực:

SomeMongoidObject['dynamic_attribute'] = json_data

+0

Giải pháp thay thế tốt, nhưng tôi vẫn muốn xem các trường JSON hỗ trợ mongoid là tùy chọn. – mydoghasworms

+0

Tôi đã đăng nhập vấn đề này trên GitHub: https://github.com/mongoid/mongoid/issues/1603 – mydoghasworms

+0

Có phản hồi về vấn đề này. Rõ ràng bạn chỉ có thể sử dụng loại trường Hash hoặc tài liệu nhúng. Đã đăng câu trả lời ở đây. – mydoghasworms

Các vấn đề liên quan