Node.js MongoDB收集方案
我开始使用NodeJS和MongoDB开发在线足球管理游戏。但现在我不知道,我应该使用多个集合还是可以将所有内容都放在一个集合中?例如:Node.js MongoDB收集方案,node.js,mongodb,collections,schema,database,Node.js,Mongodb,Collections,Schema,Database,我开始使用NodeJS和MongoDB开发在线足球管理游戏。但现在我不知道,我应该使用多个集合还是可以将所有内容都放在一个集合中?例如: { "_id" : ObjectId("5118ee01032016dc02000001"), "country" : "Aruba", "date" : "February 11th 2013, 3:11:29 pm", "email" : "tadad@adadasdsd.com", "name" : "test", "pass"
{
"_id" : ObjectId("5118ee01032016dc02000001"),
"country" : "Aruba",
"date" : "February 11th 2013, 3:11:29 pm",
"email" : "tadad@adadasdsd.com",
"name" : "test",
"pass" : "9WcFwIITRp0e82ca3c3b314a656bfb437553b1d013",
"team" : {
"name" : "teamname",
"logo" : "urltologo",
"color" : "color",
"players" : [{
"name" : "name",
"surname" : "surname",
"tackling" : 58,
"finishing" : 84,
"pace" : 51,
....
}, {
"name" : "name",
"surname" : "surname",
"start_age" : 19,
"tackling" : 58,
"finishing" : 84,
"pace" : 51,
...
}],
"stadium" : {
"name" : "stadium",
"capacity" : 50000,
"pic" : "http://urltopic",
....
},
},
}
或者为用户、装置、球员、团队创建不同的集合?还是其他方法?关于如何在mongo中设计模式,没有硬性规定。这在很大程度上取决于您的应用程序数据访问模式、数据访问频率和不同实体之间的关系、它们如何收缩/增长/更改以及其中哪些保持不变。在不知道应用程序应该如何工作的情况下给出建议是不可行的。我建议您参考一本书,例如《MongoDB in Action》,该书就如何在mongo中正确设计模式提供了建议,并考虑了帐户应用程序的特定要求。当我开始使用MongoDB时,我遵循了“嵌入一切”的咒语,这正是您在上面所做的。但是,需要考虑到子文档可能会变得非常大。您应该考虑更新特定文档或子文档的频率。例如,您的播放器可能会定期更新,因此您可能希望将它们放在自己的收藏中以便于使用。无论如何,MongoDB的灵活性使得这个问题确实没有“正确”的答案,但它可能会帮助您参考关于数据建模的文章