默认情况下,GridFS 使用 fs.files 和 fs.chunks 两个集合来存储文件的元数据和块。每个区块都由其唯一的 ObjectId(_id)字段标识。fs.files 用作父文档,fs.chunks 文档中的 files_id 字段将块链接到其父级。
下面展示了一个简单的 fs.files 集合文档:
{ "filename": "test.txt", "chunkSize": NumberInt(261120), "uploadDate": ISODate("2014-04-13T11:32:33.557Z"), "md5": "7b762939321e146569b07f72c62cca4f", "length": NumberInt(646) }
该文档指定了文件的文件名、块大小、上传日期和长度。下面展示了一个简单的 fs.chunks 集合文档:
{ "files_id": ObjectId("534a75d19f54bfec8a2fe44b"), "n": NumberInt(0), "data": "Mongo Binary Data" }
想要将文件添加到 GridFS 中,可以使用 put 命令。下面的示例中演示了使用 put 命令在 GridFS 中存储 mp3 文件的过程。在存储文件时我们需要使用 mongofiles.exe,它在 MongoDB 安装目录下的 bin 目录中。
打开命令行工具,跳转到 mongofiles.exe 所在的目录并输入以下代码:
C:\Users\79330>mongofiles.exe -d gridfs put F:/code/music/song.mp3
2021-03-09T09:38:22.271+0800 connected to: localhost
2021-03-09T09:38:22.333+0800 added file: F:/code/music/song.mp3
提示:若已经将 MongoDB 安装目录下的 bin 目录添加到了 Path 环境变量中,则可以省略跳转到 bin 目录的步骤,直接在命令行工具中输入以上命令即可。
上面命令中 gridfs 为要存储文件的数据库名称,如果数据库不存在,那么 MongoDB 会自动创建;F:/code/music/song.mp3 为要存储文件的路径以及名称。
若要查看我们上面保存在数据库中的文档,可以使用 find() 命令:
> db.fs.files.find().pretty() { "_id" : ObjectId("6046d18e01ef664194f5a78c"), "chunkSize" : 261120, "uploadDate" : ISODate("2021-03-09T01:38:22.341Z"), "length" : 4148442, "md5" : "cc3495f49ece8212906ef5c59e7440f0", "filename" : "F:/code/music/song.mp3" }
我们还可以通过上面查询中返回的文档 ID 来查看 fs.chunks 集合中与存储文件相关的所有数据:
> db.fs.chunks.find({files_id:ObjectId('6046d18e01ef664194f5a78c')})
上面的查询返回了 15 个文档的数据,这意味着前面我们存储的 song.mp3 文件被存储到了 15 个区块中。
分享标题:MongoDBGridFS
文章出自:http://www.shufengxianlan.com/qtweb/news2/364852.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联