将Bson文件转换为Json文件时丢失数据

时间:2017-11-09 20:32:11

标签: mongodb

我使用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文件的数量时,它比真正的数据库收集计数少得多。

1 个答案:

答案 0 :(得分:0)

  

但testCol.json文件只有23GB,我认为它应该比bson文件大得多。

不,这听起来不错。事实上,我感到惊讶的是,它只减少了5%。

BSON 不是节省空间的格式。它实际上相当浪费 - 特别是,它表示具有类型代码的字符串,32位长度空终止符,因此对于每个字符串存在六个字节的开销BSSON文档,与JSON中使用的两个文档(开始和结束")相比。

行数的差异并非意料之外。换行符在JSON中没有特定含义 - 它们通常在字符串中以\n转义 - 因此JSON文件的行数没有任何特定含义。