2015-03-31 5 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

+0

Да В моем случае, если я хочу получить такие значения, как уровень и т. Д., Тогда я легко получаю – Logicbomb

+0

Если у вас есть хорошая идея, вы разместите здесь. У учетной записи – Logicbomb

Смежные вопросы