MongoDB的合理使用?

MongoDB的合理使用?,mongodb,Mongodb,我已经在我的项目中使用了MongoDB,但我即将扩展它,我想看看这是否是对文档样式集合模型的合理使用 基本上,我有许多不同类型的电路板,我正在对其中的接线进行建模。我的数据集并不庞大,所以我不太担心效率,但我不想让它变得可怕。下面是我的布局: 我有8种左右的电路板类型,我计划将所有这些都放在一个集合中,它们的模式略有不同,如下所示: { "id_num" : "int", "Board Type" : "string", "Signal Name" : "string",

我已经在我的项目中使用了MongoDB,但我即将扩展它,我想看看这是否是对文档样式集合模型的合理使用

基本上,我有许多不同类型的电路板,我正在对其中的接线进行建模。我的数据集并不庞大,所以我不太担心效率,但我不想让它变得可怕。下面是我的布局:

我有8种左右的电路板类型,我计划将所有这些都放在一个集合中,它们的模式略有不同,如下所示:

{
    "id_num" : "int",
    "Board Type" : "string",
    "Signal Name" : "string",
    "FPGA #" : "int",
    "FPGA Pin #" : "int",
    "FPGA Page" : "int",
    "FPGA Address" : "int",
    "Net Name" : "string"
 }

 {
    "id_num" : "int",
    "Board Type" : "string",
    "Signal Name" : "string",
    "Feedback Pin" : "int",
    "Pin Functions" : "array of strings",
 }              

 {
    "id_num" : "int",
    "Board Type" : "string",
    "Signal Name" : "string",
    "FSW Handle" : "string"
 }

我将有大约5000个文件总数,所以没有什么大的,我想看看这是一个合理的方式来建立一个单一的集合。我主要是按信号名进行查询,所以我不想将它们分成8个集合,而必须执行8个查询才能获得具有特定信号名的所有导线。将所有内容放在一个集合中是否有任何负面影响?

是的,这是合理的,符合MongoDB的“灵活模式”主题。但是,考虑文档数量增长时发生的情况——您只有8种类型的板,所以这是一个很差的索引选择。有多少个信号名?从本质上讲,为了获得索引的好处,您需要在值中有很多“多样性”。如果选择的数量有限,那么MongoDB将转到适当的索引,但随后逐个文档扫描共享相同索引值的所有文档。希望它有意义。

哦,我不打算按图板类型编制索引,这将是我的收藏部门。信号名称将是我的索引,因为它在每个类中都是唯一的,对于每个板类型,它只有一个实例。在检索文档时,您必须检查电路板类型,以确定检索到的电路板类型。祝你好运