gpt4 book ai didi

node.js - mongoDB 处理 1-n n-n 关系的最佳实践是什么?

转载 作者:可可西里 更新时间:2023-11-01 09:15:43 27 4
gpt4 key购买 nike

在关系数据库中,1-n n-n 关系意味着 2 个或更多表。但是在 mongoDB 中,因为可以像这样将这些东西直接存储到一个模型中:

Article{
content: String,
uid: String,
comments:[Comment]
}

我对如何管理这些关系感到困惑。比如文章-评论模型,是不是应该直接把所有的评论存入文章模型,然后每次都把整个文章对象读成JSON?但是,如果评论变得非常大怎么办?比如一个文章对象有1000条评论,这样的策略会不会每次GET过程都很慢?

最佳答案

我绝不是这方面的专家,但是我以前遇到过类似的情况。

从我看到的几个演示中,是的,您应该直接将所有评论存储在一行中。这将为您提供最佳性能(除非您期待一些荒谬的评论)。这样您的文档中就有了所有内容。

在未来,如果事情开始进展顺利,而您确实注意到事情进展缓慢,您可以做一些事情。您可以引用其他评论的存储位置来存储最新的(插入任意数量的)评论,然后将旧评论映射到“桶”中以保持快速加载。

但是最初我会将其存储在一个文档中。

所以会有一个看起来像这样的模型:

Article{    
content: String,
uid: String,
comments:[
{"comment":"hi", "user":"jack"},
{"comment":"hi", "user":"jack"},
]
"oldCommentsIdentifier":12345
}

如果您确实将评论从评论字符串中移出,则只会填充 oldCommentsIdentifier,但是如果评论少于 1000 条甚至更多,我真的不会这样做。将在这里进行一些测试,看看“最佳”点是什么。

关于node.js - mongoDB 处理 1-n n-n 关系的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13733356/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com