Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB收集方案_Node.js_Mongodb_Collections_Schema_Database - Fatal编程技术网

Node.js 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"

我开始使用NodeJS和MongoDB开发在线足球管理游戏。但现在我不知道,我应该使用多个集合还是可以将所有内容都放在一个集合中?例如:

{
  "_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的灵活性使得这个问题确实没有“正确”的答案,但它可能会帮助您参考关于数据建模的文章