mongodb数据模型设计 - 仅限嵌入式文档?

时间:2017-02-05 17:59:13

标签: mongodb database-schema

我不确定此示例是否必须仅使用嵌入式文档:

  1. 我有一个用户的基本模型
  2. 每个用户都有多个页面
  3. 每个页面都有多个会话
  4. 每个会话都有多个操作
  5. 所以看起来像这样:

    user = {
      'email': 'test@test.com',
      'pages': [
           {
              'name': 'best page',
              'sessions': [
                  {
                     session_name: 'abc',
                     actions: [
                        {abc: 'def'},
                        {abc: 'def'}
                     ]
                  },
    
              ]
           }, ..
      ]
    };
    

    基本上有3个嵌套数组。会话数据仅用于读取(无更新操作)。我正在考虑将会话作为另一个模型参考页面。这是个好主意吗?

1 个答案:

答案 0 :(得分:0)

你的架构完全没问题。one to many relationship就属于这种情况。您必须将Sessions data保留在nested form中,如示例所示。即使您只想查询会话数据,将来也可能需要issue multiple queries to resolve the references。因此,为了更好的练习,您不应该单独保留会话数据。有关详细信息,请参阅Mongo: Model One-to-Many Relationships