GridFS
mongoDB除了保存各种文档(JOSN结构)外还能够保存文件。GridFS规范提供了一种透明机制,可以将一个大文件分割成为多个较小的文档,这样的机制允许我们有效的保存大文件对象,特别对于那些巨大的文件,比如视频、高清图片等。
GridFS使用两个表来存储数据:
-
files:包含元数据对象
文件的元数据放在这个集合里面,默认fs.files。这个里面的每个文档表示GridFS中的一个文件,与文件相关的自定义元数据也保存在其中,除了用户自定义的键,GridFS还有默认的一些键:
- _id:文件唯一的id,在块中为“files_id”键的值存储
- length:文件内容总的字节数
- chunksize:每块的大小,以字节为单位。默认25K,可以调整
- uploadDate:文件存入的时间
- md5:文件内容的md5校验,由服务端生成
-
chunks:包含其他一些相关信息的二进制块
GridFS的块有个单独的集合。默认情况下,块将使用fs.chunks集合,如果有需要可以覆盖。这个块集合里面文档的结构非常简单:
{ "_id":ObjectId("......"), "n":0, "data":BinData("......"), "files_id":ObjectId(".......") }
- _id:标志唯一
- n:表示块的编号,也就是这个块在原文件中的顺序号
- data:包含组成文件块的二进制数据
- files_id: 包含这个块元数据的文件文档的"_id"
使用mongofile来操作GridFS:
//将 “aaaa” 写入foo.txt文件中 c:\MongoDB\mongodb_win32_x86_64_2.2.7\bin>echo "aaaa" > foo.txt //将foo.txt保存到GridFS中 c:\MongoDB\mongodb_win32_x86_64_2.2.7\bin>mongofiles.exe put foo.txt connected to: 127.0.0.1 added file: { _id: ObjectId('53449f0becdebde54ff76105'), filename: "foo.txt", ch unkSize: 262144, uploadDate: new Date(1397006091696), md5: "819596956779801cced4 fb21379bf023", length: 9 } done! //查看 c:\MongoDB\mongodb_win32_x86_64_2.2.7\bin>mongofiles.exe list connected to: 127.0.0.1 foo.txt 9 //获取 c:\MongoDB\mongodb_win32_x86_64_2.2.7\bin>mongofiles.exe get foo.txt connected to: 127.0.0.1 done write to: foo.txt
命令说明
put:将文件系统中的一个文件添加到GridFS
list:会把所有添加到GridFS中的文件列出来
get:put的反向操作
在mongodb工具中查看GridFS
相关推荐
首先,MongoDB提供了GridFS(Grid File System)规范,这是一个用于存储和检索大文件的标准,如图片、视频或文档。GridFS将大文件拆分为多个小块(通常为255KB),以便更高效地存储和检索。每个文件块都是一个单独的...
在MongoDB中,GRIDFS是一种特殊的数据存储方式,用于存储和检索大文件,如图片、视频或大型文档。它将文件分割成多个块(chunks),以便更高效地存储和检索。 1. **上传文件到MongoDB的GRIDFS** 在MongoDB中,使用...
在MongoDB 3.3版本中,GridFS是一种用于存储和检索大型文件(如图像、视频等)的机制。GridFS将大文件分割成多个小块,每个块存储为单独的文档,这样可以方便地进行上传、下载和管理。 MongoDB.NET驱动是用于.NET...
GridFS简介 什么是GridFS GridFS的工作原理 GridFS的应用场景 安装与配置 安装MongoDB 安装MongoDB驱动 GridFS基本操作 文件的上传 文件的下载 文件的删除 GridFS高级操作 文件分片与元数据管理 并发文件操作 文件...
GridFS 是 MongoDB 提供的一种用于存储和检索大型文件的标准规范,它将大文件分割成多个小块(chunks)存储,方便高效管理和检索。在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件...
关于文件存储,MongoDB 的 GridFS 功能允许我们将文件存储在数据库中。首先,我们需要导入相关的头文件: ```cpp #include <mongocxx/gridfs.hpp> ``` 创建一个 `mongocxx::gridfs::bucket` 对象来操作 GridFS: ...
9. GridFS:当单个文档大小超过16MB时,MongoDB使用GridFS来存储大文件,将它们分割成多个小块进行存储。 10. 应用开发:讨论如何在Java或其他编程语言中使用MongoDB的驱动程序进行应用开发,包括连接数据库、执行...
Mongodb基于GridFS存储文件,通过流的方式存储文件图片,以及读取功能。本人亲自测试、编写。值得信赖
MongoDB的GridFS是一个强大的文件存储系统,专为在数据库中存储和检索大量小文件而设计。GridFS将文件拆分为多个数据块(chunk),每个块都有自己的文档存储在`fs.chunks`集合中,而文件元信息则保存在`fs.files`集合...
对于 GridFS 的增删改查,MongoDB 提供了一个名为`mongofiles`的命令行工具,它允许用户方便地操作存储在GridFS中的文件。例如,可以使用`mongofiles add`命令添加文件,`mongofiles remove`删除文件,以及`...
- 文件存储:MongoDB的GridFS规范允许存储大文件,将文件拆分为多个块存储在多个文档中,适合存储图像、视频等大文件。 总结,"SOD.rar_MongoDB_sod.c_分布式文件数据库_读写_非关系型数据库"这个压缩包中的资源,...
10. **GridFS**:对于大文件的存储,MongoDB提供了GridFS接口,它将大文件拆分为小块存储,便于管理和检索。 深入研究"CSIS_Mongodb-源码.rar"中的源代码,我们可以学习到如何设计和实现一个分布式数据库系统,包括...
GridFS 是 MongoDB 提供的一种用于存储和检索大型文件(如图片、视频等)的标准机制,将大文件分成多个小块存储在 MongoDB 的集合中,以提高效率和可靠性。 在这个"mongodb+GridFS文件的上传下载删除DEMO"项目中,...
14. GridFS:用于存储和检索大文件,当单个文档大小超过16MB时,可以使用GridFS。 15. Replication & Sharding:MongoDB支持复制集和分片,以实现高可用性和水平扩展。 在"db_operate"的示例中,你可能会看到这些...
功能:基于mongodb gridfs实现简单文件上传、下载、搜索、删除。 开发环境:VS2012 mongodb驱动:官方Driver 上传控件:jquery uploadify 疑问:sort()方法可能有点问题 PS:有问题可以留言,欢迎交流~
GridFS 是 MongoDB 提供的一种用于存储和检索大文件的标准方法,如图片、视频或大型文档。在本文中,我们将深入探讨 GridFS 图片文件存储解决方案及其工作原理。 **GridFS 概述** GridFS 是 MongoDB 的一部分,它将...
MongoDB的GridFS是一种用于存储和检索大文件的系统,它是MongoDB数据库的一部分,特别适合存储超过16MB的单个文档。在C#中,我们可以利用MongoDB .NET驱动程序来操作GridFS。以下是对GridFS在C#中使用的详细讲解。 ...
"GridFS.dcu"文件可能包含了对MongoDB的GridFS存储系统的支持。GridFS是MongoDB用于存储大型文件(如图片、视频)的分布式文件系统。通过GridFS,你可以将大文件分割成小块存储,并能轻松地进行上传、下载和管理。 ...
以下是一个简单的Java示例,展示如何使用GridFS存储和检索文件: ```java import com.mongodb.client.gridfs.GridFSBucket; import com.mongodb.client.gridfs.GridFSBuckets; import ...
7. GridFS:内置功能,用于存储大量小文件。 8. 脚本支持:可以直接在服务器端执行JavaScript脚本,提高开发效率。 9. 动态数据模型:无需预先定义表结构,数据结构可随时调整。 MongoDB 与传统的关系型数据库相比...