【问题标题】:Mongodb Schemas for different types of Posts/Articles [closed]用于不同类型帖子/文章的 Mongodb 模式 [关闭]
【发布时间】:2017-11-05 05:02:55
【问题描述】:

我正在使用 Mongodb、Mongoose 和 Expressjs 开发一个应用程序,其中有不同类型的文章或帖子。例如,有一个 URL 帖子,它只包含一个 URL 或地址,并且其中没有文本。有普通帖子、地图帖子、图片帖子和其他类型的帖子。

现在我想在我的应用程序中定义Posts 的架构。如果我应该为它们中的每一个定义不同的模式,我有点困惑,因为当它们共享某些属性时它们应该具有不同的属性和属性,或者将所有可能的属性放在 Post 模式中并使用名称为的属性type 指定已分享帖子的类型。

做这种事情的最佳做法是什么?

【问题讨论】:

    标签: node.js mongodb database-design mongoose mongoose-schema


    【解决方案1】:

    这取决于您的需求。如果您想对整个Post 集合运行可能导致不同类型帖子的查询,您应该使用一个带有type 属性的通用模式。如果没有,请使用单独的集合,这会使系统清晰易懂。

    如果您想使用一个集合并且每个架构中都有共同的属性,您应该尝试mongoose-schema-extend 包。有了它,您可以像处理类一样处理架构并进行继承。

    https://github.com/briankircho/mongoose-schema-extend

    【讨论】:

      【解决方案2】:

      我建议将所有常见属性放在一个架构中,并让您的帖子成为动态类型(例如,您的帖子可以包含图像以及文本和视频)。你最终可能会得到这样的结果:

      post {
        (_)id : ...,
        user_id: ...,
        .
        .
        .
      },
      post_images{
        (_)id:...,
        post_id:...,
        uri:...,
        .
        .
        .
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-27
        • 1970-01-01
        • 1970-01-01
        • 2018-02-26
        • 2014-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多