我有一个数据集,它返回一个名为“data_arr”的数组,该数组包含5到200个子项目,这些子项目有一个标签空间&键值对如下。
{
"other_fields": "other_values",
...
"data_arr":[
{
"labelspace": "A",
"color": "red"
},
{
"labelspace": "A",
"size": 500
},
{
"labelspace": "B",
"shape": "round"
},
]
}
问题是,在MongoDB中,如何存储针对快速读取而优化的数据。具体来说,会有查询:
标签空间很重要,因为一些关键名称可以重复使用。
我打算通过索引标签空间来索引现有结构。
我考虑将所有标签空间键/值分组到一个子文档中,如下所示:
{
"other_fields": "other_values",
...
"data_a":
{
"color": "red",
"size": 500
},
"data_b":
{
"shape": "round"
}
}
或使用多值索引
对其进行建模{
"other_fields": "other_values",
...
"data_arr":[
{
"labelspace": "A",
"key": "color",
"value": "red"
},
{
"labelspace": "A",
"key": "size",
"value": 500
},
{
"labelspace": "B",
"key": "shape",
"value": "round"
},
]
}
这是一个需要收集的新数据集。因此,我很难建立足够的样本,以发现我冒险走错了路。
我认为最后一个最适合索引,所以可能是最好的方法吗?