用于不同类型帖子/文章的 Mongodb 模式 [关闭]
Posted
技术标签:
【中文标题】用于不同类型帖子/文章的 Mongodb 模式 [关闭]【英文标题】:Mongodb Schemas for different types of Posts/Articles [closed] 【发布时间】:2017-11-05 05:02:55 【问题描述】:我正在使用 Mongodb、Mongoose 和 Expressjs 开发一个应用程序,其中有不同类型的文章或帖子。例如,有一个 URL 帖子,它只包含一个 URL 或地址,并且其中没有文本。有普通帖子、地图帖子、图片帖子和其他类型的帖子。
现在我想在我的应用程序中定义Post
s 的架构。如果我应该为它们中的每一个定义不同的模式,我有点困惑,因为当它们共享某些属性时它们应该具有不同的属性和属性,或者将所有可能的属性放在 Post
模式中并使用名称为的属性type
指定已分享帖子的类型。
做这种事情的最佳做法是什么?
【问题讨论】:
【参考方案1】:这取决于您的需求。如果您想对整个Post
集合运行可能导致不同类型帖子的查询,您应该使用一个带有type
属性的通用模式。如果没有,请使用单独的集合,这会使系统清晰易懂。
如果您想使用一个集合并且每个架构中都有共同的属性,您应该尝试mongoose-schema-extend
包。有了它,您可以像处理类一样处理架构并进行继承。
https://github.com/briankircho/mongoose-schema-extend
【讨论】:
【参考方案2】:我建议将所有常见属性放在一个架构中,并让您的帖子成为动态类型(例如,您的帖子可以包含图像以及文本和视频)。你最终可能会得到这样的结果:
post
(_)id : ...,
user_id: ...,
.
.
.
,
post_images
(_)id:...,
post_id:...,
uri:...,
.
.
.
【讨论】:
以上是关于用于不同类型帖子/文章的 Mongodb 模式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章