我一直在开发 EAV(实体属性值)Web 应用程序。
我想使用 mongo 的主要原因是它是无模式的,即很容易找到具有“颜色”属性的汽车而没有不必要的字段。
这是要实现的文档结构的简短示例:
来自计算机类别的商品:
{
name: "Core i7",
category: 1,
properties:{
price:300,
vendor: "Intel",
...
}
}
同时,汽车类别中的商品具有自己的一组属性:
{
name: "Audi Q7",
category: 2,
properties:{
price:30000,
color:"red",
hp:200
...
}
}
但是,如果我有 100 个类别,我的数据库将存储 100 个不同的文档(按其结构)。MongoDB 文档说,文档可以是无模式的,但最好的做法是拥有或多或少相同的文档结构。
我的问题是:拥有大量不同结构的文档是不是很糟糕?