【发布时间】:2015-11-13 05:55:34
【问题描述】:
我希望存储以下数据:
电视剧
电视节目中的季节
一季内的剧集
一集中的天赋
我目前将它存储在 4 个表(节目、季节、剧集、人才)中的 MySQL。我希望在 MongoDB 中找到合适的数据模型。
我正在考虑像这样嵌套数据: 显示->季节->剧集->天赋
这样嵌套数据是否会导致难以更新某些字段?
我是新手,所以我愿意接受任何建议。
【问题讨论】:
标签: mongodb data-modeling
我希望存储以下数据:
电视剧
电视节目中的季节
一季内的剧集
一集中的天赋
我目前将它存储在 4 个表(节目、季节、剧集、人才)中的 MySQL。我希望在 MongoDB 中找到合适的数据模型。
我正在考虑像这样嵌套数据: 显示->季节->剧集->天赋
这样嵌套数据是否会导致难以更新某些字段?
我是新手,所以我愿意接受任何建议。
【问题讨论】:
标签: mongodb data-modeling
深度嵌套的结构可能难以使用 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"})
【讨论】: