我们正在开发一个包含本土文献的网站。整个网站被设计为以作家为中心。每位作家有8000 - 10000篇文章/诗歌/书籍。
客户端要求将mongoDB用作此应用程序的后端。作为一个新手,我对mongo中的数据建模感到困惑。
我的问题是,什么是最好的方法?我的用例的嵌入式数据模型或规范化数据模型。
Writer:{
_id: ObjectID
WriterName: String
Email: String
Article :[
_id: ObjectID
ArticleName: String
CreatedDate: Date
comments: [
body: String
]
]
或者
Writer: {
_id: ObjectID
WriterName: String
Email: String
}
Articles: {
_id: ObjectID
Writer_id: ObjectID
ArticleName: String
CreatedDate: Date
comments: [
body: String
]
}
我们还有另一个用例,我们需要从所有作者文章中检索前20篇文章。记住这个最好的解决方案是什么?如果文档大小超过16MB,请告诉我文档的影响。
答案 0 :(得分:0)
存储此类数据的最佳方法是创建2个集合并提供两种方式。在每篇文章中保留每个作者的文档和writerId中的文章列表。 像这样:
Writers: { _id: ObjectID,
WriterName: String,
Email: String,
Article :[ObjectID1, ObjectID2, ObjectID3]
}
Articles: { _id: ObjectID,
Writer_id: ObjectID,
ArticleName: String,
CreatedDate: Date,
Comments: [ body: String ]
}