2014-12-17 2 views
0

Ищу хранить следующие данные:Какая хорошая модель данных в Монго для моих данных?

  • Сериалы

  • Времена года в рамках телевизионного шоу

  • эпизодов в течение сезона

  • Таланты в пределах эпизода

В настоящее время у меня есть это MySQL, который хранится в 4 таблицах (шоу, сезоны, эпизоды, таланты). Я ищу, чтобы найти правильную модель данных в MongoDB.

Я рассматриваю вложенности данные, как это: Show-> Seasons->> Таланты эпизодов

Будет гнездящиеся данные, как, что делает его трудно обновлять определенные поля?

Я новичок в этом, поэтому я открыт для любых предложений.

ответ

1

Глубоко вложенные структуры могут затруднить работу с коллекцией MongoDB. Тем не менее, если вы хотите создать вложенную структуру, которую вы могли бы сделать что-то вроде этого:

[{'show':{'name':'ShowName', 
      'seasons':[{'name':'SeasonOne', 
         'episodes': 
            [{'name':'EpisodeOne', 
             'talents':['talentOne', 
               'talentTwo', 
               'talentN'] 
            }] 
         }, 
         {'name':'SeasonTwo', 
         'episodes': 
            [{'name':'EpisodeOne', 
             'talents':['talentOne', 
               'talentTwo', 
               'talentN'] 
            }] 
         }] 
      }}, 
     {'show':{'name':'ShowNameTwo', 
      'seasons':[{'name':'SeasonOne', 
         'episodes': 
            [{'name':'EpisodeOne', 
             'talents':['talentOne', 
               'talentTwo', 
               'talentN'] 
            }] 
         }, 
         {'name':'SeasonTwo', 
         'episodes': 
            [{'name':'EpisodeOne', 
             'talents':['talentOne', 
               'talentTwo', 
               'talentN'] 
            }] 
         }] 
      }}] 

Тогда вы могли бы запросить конкретный показ по имени:

db.show.find({"show.name":"ShowName"}) 

Или даже получить все показывает, что звезда определенный талант:

db.show.find({"show.seasons.episodes.talents":"talentOne"}) 
Смежные вопросы