将JSON哈希存储到MongoDB的最佳实践。每个密钥1个字段或整个散列的1个字段

时间:2016-06-26 13:45:00

标签: ruby mongodb mongoid

我正在将大型JSON文件存储到MongoDB。

JSON具有以下结构:

{"listing": 
  {"k1": "v1"},
  {"k2":   2 },
  {"k3": [1,2,3]},
}

我使用Mongoid ODM将字段映射到我的Ruby类。

我应该为每个键创建1个字段还是包含整个JSON文件的Hash类型的1个字段?

class Listing
  include Mongoid::Document
  field :listing, type: Hash
end

class Listing
  include Mongoid::Document
  field :k1, type: String
  field :k2, type: Integer
  field :k3, type: Array
end

我担心的是,如果我只使用1个Hash类型的字段而不是每个JSON密钥1个字段,那么该文档可能会变得更难查询。

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是:

  • 为以后可能会查询的密钥添加字段并为其添加密钥,我认为不会有很多密钥。
  • 为整个JSON数据添加listing哈希。