我在設計我的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數據庫的概念,我仍然想知道,我是否誤解了數據庫,並且在查詢的單個集合中有數據結構的好方法。
任何建議,非常感謝。