我在SQL中有以下结构,我希望使用MEAN堆栈进入Mongo以获取项目。基本上它与用户能够为游戏撰写评论有关。所以我有一个User表与子查看表有关系。用户可以有很多评论。评论加入了一个游戏桌,该表参考了已经过评论的所有游戏细节。我需要游戏桌才能存储游戏详情并将其显示在搜索中,以便可以选择游戏,然后从那里可以看到所有游戏的评论。
作为Mongo文档风格本质的新手,有什么最有效的方法来设置它?我是否有3个镜像下面的表并且只是相互引用的文档,或者为每个游戏存储单独的文档是否更好?阅读MongoDB网站上的文件以便从RDBMS迁移,这并不能让我清楚地了解我应该如何向前发展。感谢任何输入人员!
答案 0 :(得分:1)
这取决于会有多少评论。正如this page所说,如果只有少数我会在游戏集中包含评论。
游戏收藏
{
"_id": ObjectID(123)
"type": "action",
"reviews": [
{
"rating": 8,
"user": ObjectID(1)
}, {
"rating": 3,
"user": ObjectID(2)
}
]
}
同样的评论不会通过游戏重复,但用户会这样做,因此请将用户留在其他收藏中并引用它们,这样就不会出现不一致或重复的数据。
用户集合
{
"_id": ObjectID(1)
}