mongodb存储二进制数据

mongodb 3.x存储二进制数据并不是以base64的方式,虽然在mongo客户端的查询结果以base64方式显示,请放心使用。下面来分析存储文件的存储内容。base64编码数据会增长1/3成为顾虑。

 

首先看mongo的c-driver对Binary类型数据的相关定义。注意下面提到了JS,要清楚官方提供给我们的mongo-client是使用JS语言的。

下面我将会存储一张图片,图片的hexdump如下面

向mongo插入数据后,用mongo-client查询显示如下,我们的图片数据显示为Base64内容,但是不要慌,这是JS语言下的显示,并不是实际底层存储。

最后我们看这条记录的物理存储

 

结论,mongodb其实是以二进制的方式存储Binary数据。base64编码数据会增长1/3的顾虑可以免除。

posted on 2017-10-12 11:06  bbqz007  阅读(9058)  评论(0编辑  收藏  举报