我希望存储以下数据:
电视节目
电视节目中的季节
一季内的剧集
一集中的人才
我目前拥有它存储在4个表(节目,季节,剧集,天赋)中的MySQL。我希望在MongoDB中找到合适的数据模型。
我正在考虑嵌套这样的数据: 展示 - > Seasons-> Episodes->人才
这样嵌套数据会难以更新某些字段吗?
我是新手,所以我愿意接受任何建议。
答案 0 :(得分: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"})