我想将我的数据库从SQLite更改为MongoDB,因为mongo架构较少。在SQL数据库中,我必须为同一个sku(产品)的每个属性创建多行。我必须创建n个列,因为每个属性具有不同的规范。现在在mongo中我计划只为具有相同id的sku创建一个文档(行)。为了实现这一点,我想为html,pdf,description等规范创建一个字段(列)。现在,最后一个字段用于具有不同值的属性。我想将它存储在哈希。(键值对)。将所有属性存储在单个单元格中是否有意义?我正朝着正确的方向前进吗?有人请建议。
编辑: 我想要这样的东西。
我的问题是,在SQL中我正在为每个属性创建列,例如属性1名称,值和属性2名称,值。这扩展了行的大小。现在我想以散列格式存储所有属性(如图中所示),因为MongoDB的架构较少。可能吗?这有道理吗?还有更好的选择吗?
答案 0 :(得分:0)
最终,您存储数据的方式应受您打算访问或更新数据的方式的影响,但一种方法是在每个sku / product中创建一个嵌入的属性对象,其中包含该sku / product的所有属性: / p>
根据您的示例:
{
"sku_id" : 14628109,
"product_name" : "TE Connectivity",
"attributes" : {
"Widhth" : [ "4", "mm" ],
"Height" : [ "56", "cm" ],
"Strain_Relief_Body_Orientation" : "straight",
"Minimum_Operating_Temperature" : [ "40" , "C" ]
}
},
{
"sku_id" : 14628110,
"product_name" : "Tuning Holder",
"attributes" : {
"Widhth" : [ "7", "mm" ],
"diametr" : [ "78", "cm" ],
"Strain_Relief_Body_Orientation" : "straight",
"Minimum_Operating_Temperature" : [ "4" , "C" ]
}
},
{
"sku_id" : 14628111,
"product_name" : "Facing Holder",
"attributes" : {
"size" : [ "56", "nos" ],
"Height" : [ "89", "cm" ],
"Strain_Relief_Body_Orientation" : "straight",
"Minimum_Operating_Temperature" : [ "56" , "C" ]
}
}