在MongoDB中存储多维数据

时间:2014-05-29 16:58:48

标签: mongodb database-design nosql

我正在尝试将产品信息(维度,规格等)的大型MySQL数据库转换为MongoDB,以提高灵活性并摆脱基于列的表的限制。我喜欢能够添加新键值的自由,而无需更新表结构。

我的数据示例如下:http://textuploader.com/9nwo。我设想我的系列是“产品”,每个产品类型都有一个嵌套的集合(例如手链葫芦)和一个嵌套的收集制造商(例如Coffing& Harrington)。基本上是一个大的多维数组。我知道MongoDB中不允许嵌套集合,所以我走到了尽头。

您如何存储此类数据集? NoSQL是否是正确的选择?

1 个答案:

答案 0 :(得分:3)

如果不需要嵌套结构,则可以通过使集合中的每个文档都是特定产品并且每个产品可以将制造商产品类型作为字段来“展平”数据。您可以索引这些字段,这样您仍然可以在没有嵌套结构的情况下快速查询它们。

如果您需要保留层次结构,mongodb实际上有一个关于设计产品层次结构模型的教程:http://docs.mongodb.org/ecosystem/use-cases/category-hierarchy/。基本上,每个产品都有一个祖先阵列。在插入和更新上保持层次结构最新是有点棘手的