0

好的,我是 MongoDB 的新手,并且一直在读一本关于它的书,有些地方在说

“大于 4MB 的文档(转换为 BSON 时)无法保存到数据库”

好的...文件上限为 4MB?让我感到困惑的是他们在括号中所说的话:(当转换为 BSON 时):所以当转换为 BSON 时大小会发生变化?

因为几行之后它说:

“为了让你知道 4MB 是多少,战争与和平的整个文本只有 3.14 MB”

什么?好吧,现在我很困惑。帮我!

4

1 回答 1

2

理论上,BSON 文件还包含占用空间和一些开销的字段名称。一般来说,开销不超过几个字节。除了一些文档开销(几个字节)之外,每个存储的值还有一些额外的存储字节。对于一个简单的字符串,它额外增加了 6 个字节(类型为 1,长度为 4,尾随 \0 字符为 1)。您可以在bsonspec.org网站上查看开销。一个简单字符串的长度本身在“转换为 BSON 时”不会改变,但是长度等的添加使它稍微变大了一点。大多数驱动程序都有一个帮助函数来计算文档的大小。在 PHP 中,你会这样做:

<?php
$document = array(
    '_id' => new MongoId(),
    'name' => 'Derick'
);
echo strlen(bson_encode($document)), "\n";
?>

在这种情况下打印39.

此外,当前的文档限制为 16 MB - 自本书编写以来已更改。

于 2012-05-26T21:25:57.237 回答