mongodb 数据模型设计 - 仅嵌入文档?
mongodb data model design - embedded document only?
我不确定在这个例子中是否必须只使用嵌入式文档:
- 我有一个用户的基本模型
- 每个用户都有多个页面
- 每个页面都有多个会话
- 每个会话都有多个操作
所以它可能看起来像这样:
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
我不确定在这个例子中是否必须只使用嵌入式文档:
- 我有一个用户的基本模型
- 每个用户都有多个页面
- 每个页面都有多个会话
- 每个会话都有多个操作
所以它可能看起来像这样:
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