我一直在阅读一些关于MongoDB的文档设计,特别是关于引用,嵌入和链接的文档设计。MongoDB的正确文档设计
我还不确定什么样的最佳布局是我想存储的那种文档。
想象一下,如果你愿意,一种动态表单构建应用程序。每个表单都有一组静态属性(名称,描述等),一组动态创建的字段(name = text,age = number等)和一组提交的结果。
事情是这样的:
$obj = array(
'name' => 'Test',
'description' => 'Hello',
'live' => false,
'meta' => array (
'name' => 'text',
'age' => 'number',
'sex' => 'boolean',
),
'records' => array(
array('name' => 'Test', 'age' => 20, 'sex' => true),
...
...
)
);
我的困惑主要来自是否我应该集合内嵌入的记录,或者我是否应该为每个单独的形式收藏。我的直觉是做后者,而我一直在阅读的MongoDB书籍中说嵌入数据是可以的。
有人可以协助,因为我希望表单有大量的提交数据。
谢谢。
编辑: 我还发现this question是有帮助的。
这个问题属于程序员.stackexchange.com – 2012-02-20 15:17:59
这就是说,答案是“它取决于”。如果您只需要在特定表单的上下文中访问/查询记录,请嵌入它们。如果您需要独立访问/查询它们,您可能需要创建一个单独的集合。 – 2012-02-20 15:19:25
@BenLee:如果我需要某些字段类型的地理空间索引,单独收集方法会更有利吗?我想不出在表单上下文之外需要表单提交的情况,但是就性能而言,我认为在单个集合中混合不同表单的记录会在磁盘上创建非连续数据并且随着越来越多的记录被提交而降低查询性能? – Leigh 2012-02-20 15:30:06