如何正确设计monogo的库表

有个功能,经常要根据工厂id查询数据,请问下面哪种设计比较合理?
还是说,效率都一样?

方案1:
{

     {
        "_id" : 1, 
        "product" : "产品1", 
        "price" : 5.5, 
        "quantity" : NumberInt(5), 
        "factory":"工厂1"        
    },
    {
        "_id" : 2, 
        "product" : "产品2", 
        "price" : 5.5, 
        "quantity" : NumberInt(5), 
        "factory":"工厂1"        
    },
    .....
    .....

}

方案2:
{

  "factory":"工厂1",
  "list":[
     {
        "_id" : 1, 
        "product" : "产品1", 
        "price" : 5.5, 
        "quantity" : NumberInt(5),        
    },
    {
        "_id" : 2, 
        "product" : "产品2", 
        "price" : 5.5, 
        "quantity" : NumberInt(5),        
    },

    ....
    ....

  ]

}

阅读 2.3k
3 个回答

除非 list 元素是固定的,内容相对固定。否则必然选择1
第二种 update/delete 都不方便,其次是 mongodb 一个 document 的大小限制只有 16MB,当你的元素足够多超出限制。这种设计实现业务都成问题。
https://docs.mongodb.com/manu...

如果没有一下子查出全部的需求,上方案一吧,以后拓展性会好很多。

新手上路,请多包涵

经常修改的话用1较好,只是查询用2

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题