MongoDB中的数据建模

时间:2017-12-14 06:28:54

标签: mongodb nosql data-modeling

我们正在开发一个包含本土文献的网站。整个网站被设计为以作家为中心。每位作家有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,请告诉我文档的影响。

1 个答案:

答案 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 ]
          }