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

mongodb data model design - embedded document only?

我不确定在这个例子中是否必须只使用嵌入式文档:

  1. 我有一个用户的基本模型
  2. 每个用户都有多个页面
  3. 每个页面都有多个会话
  4. 每个会话都有多个操作

所以它可能看起来像这样:

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

          ]
       }, ..
  ]
};

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

你的 architecture.This 绝对没问题 one to many relationship。如果您只想查询会话数据,您必须将 Sessions data 保留在 nested form 中,如您的 example.Even 所示,您将来可能需要 issue multiple queries to resolve the references。所以,为了更好的实践,你不应该单独保存会话数据。有关详细信息,请参阅 Mongo: Model One-to-Many Relationships