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
}
}
}
]
}
对不起
结构从集 “账户” 一个文档的我的英文。
你能解释为什么你决定去这个模型? – chridam 2015-03-31 12:00:57
是的在我的情况下,如果我想检索像等级等值,然后我很容易地检索 – Logicbomb 2015-03-31 12:04:38
如果你有好主意,那么你会张贴在这里。 – Logicbomb 2015-03-31 12:05:27