四十八、MongoDB GridFS

AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
四十八、MongoDB GridFS
云少四十八、MongoDB GridFS
master ,这是我的小站,欢迎访问哦~~
GridFS 用于存储和恢复那些超过 16M ( BSON 文件限制 ) 的文件 (如音频、视频)
GridFS 也是文件存储的一种方式,但是它是存储在 MonoDB 的集合中
GridFS 会将大文件对象分割成多个小的 chunk(文件片段),一般为 256k / 个,每个 chunk 将作为 MongoDB 的一个文档 (document) 被存储在 chunks 集合中
GridFS 用两个集合来存储一个文件:fs.files 与 fs.chunks
每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的 meta 数据 (filename,content_type,还有用户自定义的属性)将会被存在files集合中
这是一个简单的 fs.files 集合文档
1 | { |
这是一个简单的 fs.chunks 集合文档
1 | { |
GridFS 添加文件
GridFS 的 put 命令可以用来添加文件
先调用 MongoDB 安装目录下 bin 的 mongofiles.exe 工具
打开命令提示符,进入到 MongoDB 的安装目录的 bin目录中,找到 mongofiles.exe
Windows
1 | > mongofiles.exe -d gridfs put <filename> |
Linux
1 | $ mongofiles -d gridfs put <filename> |
下面的范例把当前目录下的 20211023.mp3 添加到 gridfs 集合中
1 | $ mongofiles -d gridfs put 20211023.mp3 |
gridfs 是存储文件的数据名称,如果不存在该数据库,MongoDB会自动创建
20211023.mp3 是音频文件名
查询 GridFS 中的文档
可以使用以下命令来查看数据库中文件的文档
1 | > use gridfs |
以上命令执行后返回以下文档数据
1 | { |
通过使用 fs.files 中的 _id 值,我们可以查询 fs.chunks 中的区块数据
1 | > db.fs.chunks.find({files_id:ObjectId('59ed5f4c2a2f951ba5353165')}) |
这个命令,查询返回了 19 个文档的数据,意味着 mp3 文件被存储在 19 个区块中
评论
匿名评论隐私政策
TwikooArtalk
✅ 你无需删除空行,直接评论以获取最佳展示效果