2015-03-31 66 views
1

開始學習MongoDB + node.js. 爲了實踐我想創建收集數據和繪製圖表的webapp。但是我爲選擇MongoDB數據庫的數據模型遇到了很大的問題。MongoDB。我應該爲我的項目選擇哪種數據模型?

它現在是如何工作的,但我認爲這是糟糕的結構。

我的服務每小時從API檢索所有數據並將其收集到集合「帳戶」中。

主要問題:可以這麼做:每個小時的特殊對象「expStart」中的每個經驗值都由請求時間生成的唯一密鑰?

{ 
"_id" : ObjectId("54bd56cb699f4890160aacc9"), 
"name" : "Shubiii", 
"characters" : [ 
    { 
     "online" : false, 
     "rank" : 562, 
     "dead" : false, 
     "name" : "ShrupShurp", 
     "league" : "hardcore", 
     "level" : 93, 
     "class" : "Ranger", 
     "experience" : 2515197599, 
     "expStat" : { 
      "dd2015_1_19_19_9" : 122120, 
      "dd2015_1_19_20_11" :45222 
     } 
    }, 
    { 
     "online" : false, 
     "rank" : 563, 
     "dead" : false, 
     "name" : "ShrupShurp2", 
     "league" : "hardcore", 
     "level" : 93, 
     "class" : "Ranger", 
     "experience" : 2515197599, 
     "expStat" : { 
      "dd2015_1_19_19_9" : 3122120, 
      "dd2015_1_19_20_11" :21212 
     } 
    } 
], 
"challenges" : { 
    "total" : 3 
}, 
"twitch" : { 
    "name" : "" 
} 

}這是API的數據結構(http://www.pathofexile.com/developer/docs/api):

{ 
"total": 15000, 
"entries": [ 
    { 
     "online": false, 
     "rank": 2, 
     "dead": false, 
     "character": { 
      "name": "iamgodyi", 
      "level": 100, 
      "class": "Ranger", 
      "experience": 4250334444 
     }, 
     "account": { 
      "name": "TW_James", 
      "challenges": { 
       "total": 0 
      }, 
      "twitch": { 
       "name": "destiny601" 
      } 
     } 
    }, 
    { 
     "online": true, 
     "rank": 3, 
     "dead": false, 
     "character": { 
      "name": "xVisco", 
      "level": 100, 
      "class": "Templar", 
      "experience": 4250334444 
     }, 
     "account": { 
      "name": "xVisco", 
      "challenges": { 
       "total": 0 
      } 
     } 
    } 
] 

}

對不起

結構從集 「賬戶」 一個文檔的我的英文。

回答

0

您可以使用此結構。

{ 
    "_id" : ObjectId("54bd56cb699f4890160aacc9"), 
    "name" : "Shubiii", 
    "characters" : { 
        "online" : false, 
        "rank" : 562, 
        "dead" : false, 
        "name" : "ShrupShurp", 
        "league" : "hardcore", 
        "level" : 93, 
        "class" : "Ranger", 
        "experience" : 2515197599, 
        "expStat" : { 
           "dd2015_1_19_19_9" : 122120, 
           "dd2015_1_19_20_11" :45222 
           } 
        }, 
    "challenges" : { 
        "total" : 3 
       }, 
    "twitch" : { 
       "name" : "" 
      } 
} 
+0

你能解釋爲什麼你決定去這個模型? – chridam 2015-03-31 12:00:57

+0

是的在我的情況下,如果我想檢索像等級等值,然後我很容易地檢索 – Logicbomb 2015-03-31 12:04:38

+0

如果你有好主意,那麼你會張貼在這裏。 – Logicbomb 2015-03-31 12:05:27

相關問題