在关系数据库中,1-n n-n关系表示2个或更多表. 但是在mongoDB中,因为可以将这些东西直接存储到一个模型中,如下所示: Article{ content: String, uid: String, comments:[Comment]} 我对如何管理这些关系
但是在mongoDB中,因为可以将这些东西直接存储到一个模型中,如下所示:
Article{ content: String, uid: String, comments:[Comment] }
我对如何管理这些关系感到困惑.例如,在article-comments模型中,我应该直接将所有注释存储到文章模型中,然后每次将整个文章对象读出到JSON中吗?但如果评论变得非常大,该怎么办?就像文章对象中有1000条评论一样,这样的策略会不会使GET过程每次都很慢?
我绝不是这方面的专家,但我以前也经历过类似的情况.从我见过的几个演示中你应该直接存储所有评论.这将给你最好的表现(除非你期待一些荒谬的评论).这样,您就拥有了文档中的所有内容.
将来如果事情开始变得很好并且你注意到事情变得更慢,你可以做一些事情.您可以查看存储最新(插入任意数量)的注释,并参考其他注释的存储位置,然后将旧注释映射到“存储桶”以保持加载时间快.
但最初我将它存储在一个文档中.
所以会有一个看起来像这样的模型:
Article{ content: String, uid: String, comments:[ {"comment":"hi", "user":"jack"}, {"comment":"hi", "user":"jack"}, ] "oldCommentsIdentifier":12345 }
然后只有你的注释字符串中移出了注释才会填充oldCommentsIdentifier,但是我真的不会这样做少于1000条评论甚至更多.这里需要进行一些测试才能看到“甜蜜”的位置.