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

Best practice for storing JSON hashes to MongoDB. 1 field per key OR 1 field for whole hash

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

JSON 具有以下结构:

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

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

我应该为每个键创建 1 个字段还是为包含整个 JSON 文件的哈希类型创建 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 个字段,文档可能会变得更难查询。

我认为最好的方法是:

  • 为稍后可能查询的键添加字段并为此添加键,我认为不会有很多。
  • 为整个 JSON 数据添加一个 listing 哈希。