如何在MongoDB数据库中存储图像而不仅仅是文本?我可以在MongoDB数据库中创建一个映像数组吗?在视频上也能做到吗?
当前回答
有关存储此类二进制数据的详细信息,请参阅GridFS文档。
对特定语言的支持应该链接到屏幕底部。
其他回答
你能在MongoDB中存储文件吗?
Yes.
应该在MongoDB中存储文件吗?
No.
MongoDB不是一个存储文件的好地方。如果您想存储文件,您应该使用Amazon S3或谷歌Could Storage这样的存储。
好的做法是将文件存储在存储器中,然后将上传的图像的URI保存在MongoDB中。
有关存储此类二进制数据的详细信息,请参阅GridFS文档。
对特定语言的支持应该链接到屏幕底部。
如果您正在使用任何脚本语言在MongoDB中存储文件/图像,则可以使用bin数据类型。Bin数据是为存储小文件而开发的。
参考脚本语言驱动程序。对于PHP,请单击这里。
“你应该总是使用GridFS存储大于16MB的文件”-我什么时候应该使用GridFS?
MongoDB BSON文档的上限为16mb。因此,如果您的文件数组的总大小小于这个值,您可以使用BinData数据类型将它们直接存储在文档中。
视频、图片、pdf文件、电子表格等等——没关系,它们都是一样的。这取决于您的应用程序是否返回适当的内容类型头来显示它们。
查看GridFS文档了解更多细节。
你可以试试这个:
String newFileName = "my-image";
File imageFile = new File("/users/victor/images/image.png");
GridFS gfsPhoto = new GridFS(db, "photo");
GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile);
gfsFile.setFilename(newFileName);
gfsFile.save();
推荐文章
- JSON文件的蒙古导入
- "where 1=1"语句
- 是使用各有一个模式的多个数据库更好,还是使用一个数据库有多个模式更好?
- 如何从Oracle的表中获取列名?
- 如何删除mongodb中的数组元素?
- 修改MongoDB数据存储目录
- 如何检查表上持有哪些锁
- 在MongoDB中查找重复的记录
- 为什么MongoDB Java驱动在条件中使用随机数生成器?
- 模式、表和数据库之间的区别是什么?
- 我看到VARCHAR(255)如此频繁地使用(而不是其他长度),有什么好的原因吗?
- 使用pgadmin连接到heroku数据库
- Delete_all vs destroy_all
- 我如何移动一个redis数据库从一个服务器到另一个?
- 如何首次配置postgresql ?