mongodb数据库教程-MongoDB GridFS

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

GridFS是用于存储和检索大型文件(如图像,音频文件,视频文件等)的MongoDB规范。它是一种用于存储文件的文件系统,但其数据存储在MongoDB集合中。 GridFS存储文件可超过文件大小限制为16MB的功能。

GridFS将文件划分成块,并将每个数据块存储在单独的文档中,每个文件的最大大小为255k

默认情况下,GridFS使用两个集合fs.filesfs.chunks来存储文件的元数据和块。 每个块由其唯一的ObjectId字段_id标识。 fs.files作为父文档进行切换。 fs.chunks文档中的files_id字段将该块链接到其父块。

以下是fs.files集合的示例文档 –

{    "filename": "test.txt",    "chunkSize": NumberInt(261120),    "uploadDate": ISODate("2018-04-13T11:32:33.557Z"),    "md5": "7b762939321e146569b07f72c62cca4f",    "length": NumberInt(646) } 

文档指定文件名,块大小,上传的日期和长度。

以下是fs.chunks文档的示例文档 –

{    "files_id": ObjectId("595b99d9f6a6243715b3c312"),    "n": NumberInt(0),    "data": "Mongo Binary Data" } 

将文件添加到GridFS

现在,使用put命令存储一个使用GridFS的mp3文件。 为此,我们将使用MongoDB安装文件夹的bin文件夹中出现的mongofiles.exe工具程序。

打开命令提示符,导航到MongoDB安装文件夹的bin文件夹中的mongofiles.exe,然后键入以下代码 –

D:/Program Files/MongoDB/Server/3.4/bin> mongofiles.exe -d gridfs put song.mp3 

这里,gridfs是要存储文件的数据库的名称。 如果数据库不存在,MongoDB将自动创建一个新的文档。 song.mp3是上传文件的名称。 要在数据库中查看文件的文档,可以使用查询查询 –

> db.fs.files.find() 

上述命令返回以下文档 –

{    _id: ObjectId('595b99d9f6a6243715b3c316'),     filename: "song.mp3",     chunkSize: 381120,     uploadDate: new Date(1398391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",    length: 10401959  } 

还可以使用以前查询中返回的文档ID,查看与存储文件相关的fs.chunks集合中存在的所有块,并使用以下代码:

>db.fs.chunks.find({files_id:ObjectId('595b99d9f6a6243715b3c316')}) 

在这个示例中,查询返回50多个文件,表示整个mp3文件被分成50个数据块。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 mongodb数据库教程/a> 只为你绽放。

本文固定链接: http://kua0.com/2019/03/28/mongodb数据库教程-mongodb-gridfs/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注