在Mongo DB中存储数据URL

Tay*_*Mac 8 data-url mongodb

我正在考虑data-url在我的mongoDB中存储s 而不是存储对文件的引用或使用GridFS.

数据网址:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMcAAAEsCAYAAAB38aczAAAgAElEQV
Run Code Online (Sandbox Code Playgroud)

我存储的所有文件都是JPG或PNG,大小不到1MB.

我想知道这是否被认为是不好的做法,以及读取和写入操作的性能影响,将data-urls 1)存储在单独的集合中2)作为集合中的元数据.

我对小文件存储的任何其他建议持开放态度.

mne*_*syn 6

首先,我不会将base64编码数据存储在完全能够存储二进制数据的数据库中.那只是浪费空间.存储图像本身,而不是它的base64表示,即不存在data : "VBORw0KGgoAAAANSUhEUgAAA...",但data : BinData("VBORw0KGgoAAAANSUhEUgAAA...")(前者是MongoDB的字符串,后者是二进制数据).Base64将尺寸增加了33%.

除此之外,我认为这很好.权衡是1个请求,它抓取所有数据与多个请求.存储更大块数据的缺点是所有数据必须在RAM中暂时存在,但在1MB时这可能不是问题.

但是,您应该确保在不需要图像的情况下不要获取文档.1MB并不算太多,但对于阅读量很大的收藏来说,这是一场灾难.