如何在MongoDB集合/文档中存储“分组的”哈希数据

时间:2018-07-24 22:36:14

标签: mongodb collections

我正在尝试将有关硬件商店中产品的信息保存到mongoDB中。 目前,我正在从某些字段/信息进行了分组的网页上检索信息。我从看起来像这样的哈希中检索哈希:

{ name: "hammer XYZ", 
  parameters: { weight: "3.8kg", 
                size: { x: "15cm", y: "10cm", z: "5cm" }, 
                maximum_force: "20N", 
                price: "15€" },
  documents: [ "hammer_xyz_user_manual.pdf", "hammer_xyz_hands_on_guide.pdf" ]
  descriptions: {short_description: "Hammer XYZ is a great hammer",
                 long_description: "Hammer XYZ was designed ...." },
  ...
}

当我查看MongoDB如何在我认为“很棒的文档”中存储数据时,我可以完全重用已经拥有的Hash结构。 但是,在学习了有关MongoDB的知识后,我读到我的 parameters descriptions 字段将是嵌入式文档,而搜索它们将“花费”更多,因为我需要额外的费用查询。至少对于参数,我想经常搜索。 如果我不必“扁平化”结构并进行类似的操作以降低“访问成本”,那将使我的生活变得更加轻松。

{ name: "hammer XYZ", 
  weight: "3.8kg", 
  size_x: "15cm", 
  size_y: "10cm", 
  size_z: "5cm", 
  maximum_force: "20N", 
  price: "15€" ,
  documents: [ "hammer_xyz_user_manual.pdf", "hammer_xyz_hands_on_guide.pdf" ]
  short_description: "Hammer XYZ is a great hammer",
  long_description: "Hammer XYZ was designed ...."
  ...
}

我还担心命名参数的冲突以及其他可能冲突的子结构。我会考虑组装类似于 size 参数的新名称,在展平时我组装了新名称size_x,size_y,size_z,而不是仅使用x,y,z。

我想我的基本问题是:
1)我是否不应该将要轻松检索的信息存储在嵌入式文档中?

2)还有其他方法可以对MongoDB文档中的数据字段进行“分组”吗?

J。

0 个答案:

没有答案