我运行一个运行在nodeJS + mongoDB后端的网站。现在,我正在实现一个系统来存储一些需要在数据库中的图标(小图像文件)。
据我所知,不使用GridFS更有意义,因为它似乎是为大文件或大量文件量身定做的。因为我需要保存的每个文件都在BSON最大文件大小之下,所以我应该能够将它们直接保存到常规文档中。
我有两个问题:
1)我的推理正确吗?是否可以将图像文件保存在常规的mongo集合中,而不是使用GridFS?有没有什么是我在这里没有考虑的,而我应该考虑的?
2)如果我的思维过程是健全的,我该如何去做呢?我可以做下面这样的事情吗:
//assume 'things' is a mongoDB collection created properly using node-mongodb-driver
fs.readFile(pathToIconImage, function(err,image){
things.insert({'image':image}, function(err,doc){
if(err) console.log('you have an error! ' + err);
});
});
我猜可能有一种更好的方法来做到这一点,因为mongoDB使用BSON,并且在这里,我正在尝试在将文件发送到数据库之前用JSON保存文件。我也不知道这段代码是否能工作(还没试过)。
更新-新问题
如果我在一个集合中有一个文档,其中保存了三部分信息: 1)名称、2)日期和3)图像文件(上面的图标),并且我想将该文档发送给客户端以显示所有这三个信息,这是可能的吗?如果不是,我想我需要使用GridFS并保存fileID来代替图像本身。想法/建议?
最好的,并感谢您的回复,
萨米语
https://stackoverflow.com/questions/11442356
复制相似问题