【问题标题】:Best design for Category Collection类别集合的最佳设计
【发布时间】:2020-06-23 17:39:22
【问题描述】:

我正在开发一个博客网站(练习 ReactJS)。 在我的网站中,我有一个滑动条将显示类别和每个类别中的帖子数量。 那么,我应该如何设计分类集合呢?

  1. 有一个名为 numPosts 的字段来存储该类别中的帖子总数。 每当我创建新的帖子文档时,我必须增加 numPost 字段。
  2. 不要将帖子总数存储在类别集合中。每次我想 获取帖子数量,我必须浏览帖子集合和计数。

有没有最适合这种情况的设计? 预先感谢您的帮助! 对不起我的英语。

【问题讨论】:

    标签: database mongodb mongoose database-design schema


    【解决方案1】:

    这更好地计算帖子(通过 count 或 $count)而不是创建“numPosts”字段, 不要像关系数据库那样行事,以下模式对于您想要做的事情来说是一个很好的选择:

    
    {
        "_id" : ObjectId("5e60df95d7ff5f38b4d44d8c"),
        "nameOfCategory": "Coronavirus",
        "postsInsideThisCategory: [{
            "titleOfPost": "Is there any cure?",
            "description": "Bla Bla Bla Bla..... and Bla"
        },{
            "titleOfPost": "What is the type of coronavirus?",
            "description": "Bla Bla Bla Bla..... and Bla"
        }]
    }
    
    

    然后只需使用count$count 来统计“postsInsideThisCategory”字段数组中的文档数。

    【讨论】:

    • 因此,只需创建一个集合类别而不是 2 个(类别和帖子)。每当我创建新帖子时,我会将其附加到“postInsideThisCategory”字段中。对吗?
    • 是的,没错,在这个架构中,您将为每个类别创建一个独立的文档,并将帖子附加到相关类别的“postsInsideThisCategory”字段中。
    • 我认为这样会使我的架构非常大。只有少数文档属于 Collection 类别(每个集合一个),但每个文档又大又长。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多