合理使用MongoDB?

时间:2014-07-30 18:27:47

标签: mongodb

我在我的项目中已经使用了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份文件,所以没什么大不了的,我想知道这是否是构建单个集合的合理方法。我将主要通过Signal Name进行查询,因此我不想将它们分成8个集合,并且必须进行8次查询才能获得具有特定信号名称的所有电线。将它们全部放入一个集合中是否有任何负面影响?

1 个答案:

答案 0 :(得分:1)

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