gpt4 book ai didi

php - 正确的 MongoDB 文档设计

转载 作者:可可西里 更新时间:2023-11-01 09:37:39 25 4
gpt4 key购买 nike

我一直在阅读一些有关 MongoDB 文档设计的文章,特别是与引用、嵌入和链接相关的内容。

对于我希望存储的文档类型,我仍然不确定最好的布局是什么。

如果您愿意,想象一下,一种动态表单构建应用程序。每个表单都有一组静态属性(姓名、描述等)、一组动态创建的字段(姓名 = 文本、年龄 = 号码等)和一组提交的结果。

像这样:

$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有帮助。

最佳答案

我会将所有表单定义存储在一个集合中,将表单提交存储在另一个集合中。您需要意识到一个文档(包括嵌入式文档)现在只能是 16 MB。

将提交的内容放在一个单独的集合中更有意义。是否要为每种表单类型设置一个不同 集合由您决定。这在一定程度上取决于每种形式的相似程度,以及您将获得多少种不同的类型。

您不必担心 MongoDB 会在磁盘上创建不连续的数据,因为 Mongo 单独存储每个文档,并且不关心哪些字段是文档的一部分。

关于php - 正确的 MongoDB 文档设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com