【问题标题】:MongoDB design of a databaseMongoDB数据库设计
【发布时间】:2019-08-06 12:19:09
【问题描述】:

所以,我正在为要插入数据库的文档设计模型,我对设计有疑问。在我的集合中插入更多文档还是更少嵌套文档更好? 示例:

sale:{
  store_id : "2",
  vendor_id: "2,
  points : 100
}


sale:{
  store_id : "2",
  vendor_id: "2,
  points : 100
}


sale:{
  store_id : "2",
  vendor_id: "2,
  points : 100
}

sale:{
  store_id : "4",
  vendor_id: "3,
  points : 100
}

sale:{
  store_id : "4",
  vendor_id: "1,
  points : 100
}

因此,在这个非嵌套示例中,如果我有 N 个销售额,我的收藏中就会有 N 个销售额。但如果我尝试嵌套,我的示例将是:

stores:{ [
  store_id : "2" 
  vendor : [
      vendor_id : "2"
      sales : [
        points : 100
      ],
      [ 
        points : 100
      ],
      [
        points : 100
      ]
  ]
],
[
  store_id: 4
  vendor : [
    vendor_id : 3
    sales : [
      point : 100
    ]
  ],
  [
    vendor_id : 1
    sale : [
      point : 100
    ]
  ]
] }; 

在此示例中,我嵌套了所有销售。 所以,我的问题是:创建报告和分析数据,哪个更快?例如,如果我想查看哪个商店的销售额更高,那么分析嵌套文档或单行文档会更快吗?

提前谢谢你。

【问题讨论】:

    标签: database mongodb mongoose nosql document


    【解决方案1】:

    答案很简单。如果您知道会有很多销售并且数量不限,那么您必须单独购买一个销售系列。 Mongodb 被设计为即使在一个集合中有一百万个文档也能以惊人的速度执行,但有趣的是,嵌套会遇到很多问题。 mongodb 中也有 16mb 的文档大小限制,所以最终一段时间后,您的一个存储文档将达到该限制,这会使事情变得非常难看。 你应该去单独收藏,这很直接。

    您也可以阅读此博客,它会为您解决问题 https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-1

    【讨论】:

    • 非常感谢,帮了我很多。
    猜你喜欢
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2014-01-01
    • 2020-06-28
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多