利用mongodb保存图片通常有两种方法,一种是将图片数据转化为二进制作为字典的键值对进行保存,另一种是利用mongodb提供的
GridFS进行保存,两者各有利弊。性能方面的优劣未曾测试,无法进行评价,此处仅对两种方式进行介绍,若有彻知者还望指教。
下面以如下数据作为示例进行介绍:
数据示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
一、GridFS
GridFS将图片数据与图片属性数据分开保存,用chunks来保存图片数据,files保存属性数据,一个图片file可能对应多个chunks,每个
chunk的内存大小固定(16M),若图片数据大于chunk,则分为多个chunk保存,用同一个ObjectID关联,下载时自动将多个chunk合
并为图片数据。
上传
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
bson二进制
这种方法将图片数据作为键值对放入字典与属性数据作为整体存入数据库中。
上传代码如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
推荐学习《Python视频教程》。