我在设计我的MongoDB集合时遇到困难,无法满足我的要求。我在以前的项目中只使用过SQL数据库,而对于MongoDB的NoSQL概念则相当陌生。我目前的学习项目是为了存储和检索所玩游戏的统计数据(增强型排行榜示例)。在关系数据库中我将创建下列表格:设计MongoDB集合vs关系方法
Matches
:_id
:game_id (reference to the type of game played)
:startedAt
:endedAt
Results
:match_id
:player_id (reference to the users collection)
:field_id
:value
一场比赛可以有n个球员,每个人都可以有n个结果。根据游戏的类型,需要为每个玩家输入由field_id指示的多个结果值(例如,点数和用户是否胜利 - >两个字段=结果表中的两行)。 我的理解是MongoDB中的概念是相关的信息存储在一个集合我试图忽视我所做的与关系DBS在过去的一年里,创造了以下收集结构:
Matches
:_id
:game_id
:startedAt
:endedAt
:players [{
:player_id
:results [{
:field_id
:value
}]
}]
但是我现在有困难来计算特定玩家的整体结果。查询为“计算玩家A在游戏B中得分的总数”非常复杂,我担心表现非常糟糕。因此,我仍然更喜欢这种情况下的关系模型。但是,由于我想了解NoSQL数据库的概念,我仍然想知道,我是否误解了数据库,并且在查询的单个集合中有数据结构的好方法。
任何建议,非常感谢。