好的我是MongoDB的新手并且正在阅读一本关于它的书,有些人在说
"无法保存大于4MB的文档(转换为BSON时) 到数据库"
好的......文件上限为4MB?令我困惑的是他们在括号中说的话:(当转换为BSON时):那么当转换为BSON时,大小会发生变化吗?
因为稍后会说:
"为了让您知道4MB是多少, 战争和整个文本 和平 仅为3.14 MB"
什么?好的,现在我很困惑。帮我!
答案 0 :(得分:2)
理论上,BSON文件还包含占用空间和一些开销的字段名称。通常,开销不超过几个字节。除了一些文档开销(几个字节),存储的每个值也有一些额外的存储字节。对于一个简单的字符串,它是额外的6个字节(1表示类型,4表示长度,1表示尾随\ 0字符)。您可以在bsonspec.org网站上看到开销。简单字符串本身的长度在“转换为BSON时”不会改变,但是增加长度等会使它变得更小。大多数驱动程序都有辅助函数来确定文档的大小。在PHP中你会这样做:
<?php
$document = array(
'_id' => new MongoId(),
'name' => 'Derick'
);
echo strlen(bson_encode($document)), "\n";
?>
在这种情况下打印39
。
此外,当前的文档限制为16 MB - 自书写完以来它已发生变化。