Mongodb模式设计建议

Mongodb模式设计建议,mongodb,database-schema,Mongodb,Database Schema,我正在做我的第一个mongodb项目,并试图在mongodb和关系数据库中进行模式设计 我想从几个rss提要创建一个蔬菜数据库。每种饲料都有一个蔬菜名称标签供我使用 1我得到2份蔬菜营养信息的饲料 2 3蔬菜种植/农业信息饲料 3.4博客文章的提要 我得到的信息只有500种不同的蔬菜 在这种情况下,最好的模式是: A每种蔬菜有一个集合,并且有营养、生长和博客文章的子集合 B或者收集一份营养信息、一份农业信息和一份博客文章 我设想用户主要查询蔬菜名称,但也可以查询其他字段。MongoDB是无模式的

我正在做我的第一个mongodb项目,并试图在mongodb和关系数据库中进行模式设计

我想从几个rss提要创建一个蔬菜数据库。每种饲料都有一个蔬菜名称标签供我使用

1我得到2份蔬菜营养信息的饲料

2 3蔬菜种植/农业信息饲料

3.4博客文章的提要

我得到的信息只有500种不同的蔬菜

在这种情况下,最好的模式是:

A每种蔬菜有一个集合,并且有营养、生长和博客文章的子集合

B或者收集一份营养信息、一份农业信息和一份博客文章


我设想用户主要查询蔬菜名称,但也可以查询其他字段。

MongoDB是无模式的-因此您不必像考虑关系数据库那样考虑这一点。我知道一开始很困惑。此外,MongoDB不支持子集合-集合中有文档和单个实体

我实际上会选择这个:

C两套。veggies集合本质上是一个复杂的数组结构,不仅包含有关veggies的信息,还包含生长/营养信息。只需确定你需要搜索的每一件物品。如果您无法使用已经存在的博客引擎,则可以单独收集博客文章


这就是NoSQL的美妙之处——只要你建立索引——你就可以使Mongo案例中称为文档的每个实体变得相当复杂。希望这能有所帮助。

注意MongoDB索引:每个查询只能使用一个索引:如果只稍微减少结果集,则每个字段单独使用一个索引不会有多大帮助。蔬菜的营养信息是某种静态信息吗,例如生菜每千克含20千卡,或者它是从多个来源汇总的,例如,这种蔬菜有12组来自不同来源的营养信息?对于不断增长的信息,同样的问题。如果是静态的,我同意卡尔文的观点。如果不是,我会选择选项B。嗨,它是从几个来源聚合而成的。