我使用mongodb dump命令将集合转储到Bson文件,如下所示:
mongodump --quiet -d mytestDB -c testCol -o /tmp
输出bson文件的大小为 24GB ,然后我使用 bsondump 将Bson文件转换为Json文件,如下所示:bsondump testCol.bson > testCol.json.
但是testCol.json文件只有 23GB ,我认为它应该比bson文件大得多。所以bsondump损坏了一些地方,但我没有看到任何错误消息。
当我使用:wc -l testCol.json.
检查json文件的数量时,它比真正的数据库收集计数少得多。
答案 0 :(得分:0)
但testCol.json文件只有23GB,我认为它应该比bson文件大得多。
不,这听起来不错。事实上,我感到惊讶的是,它只减少了5%。
BSON 不是节省空间的格式。它实际上相当浪费 - 特别是,它表示具有类型代码的字符串,32位长度和空终止符,因此对于每个字符串存在六个字节的开销BSSON文档,与JSON中使用的两个文档(开始和结束"
)相比。
行数的差异并非意料之外。换行符在JSON中没有特定含义 - 它们通常在字符串中以\n
转义 - 因此JSON文件的行数没有任何特定含义。