我正在尝试将有关硬件商店中产品的信息保存到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。