`
zc985552943
  • 浏览: 291400 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11888
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:27200
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:16041
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:27285
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13694
社区版块
存档分类
最新评论

07_MongoDB_GridFS_存储文件

阅读更多

GridFS

mongoDB除了保存各种文档(JOSN结构)外还能够保存文件。GridFS规范提供了一种透明机制,可以将一个大文件分割成为多个较小的文档,这样的机制允许我们有效的保存大文件对象,特别对于那些巨大的文件,比如视频、高清图片等。

GridFS使用两个表来存储数据:

  • files:包含元数据对象

文件的元数据放在这个集合里面,默认fs.files。这个里面的每个文档表示GridFS中的一个文件,与文件相关的自定义元数据也保存在其中,除了用户自定义的键,GridFS还有默认的一些键:

  1. _id:文件唯一的id,在块中为“files_id”键的值存储
  2. length:文件内容总的字节数
  3. chunksize:每块的大小,以字节为单位。默认25K,可以调整
  4. uploadDate:文件存入的时间
  5. md5:文件内容的md5校验,由服务端生成
  • chunks:包含其他一些相关信息的二进制块

GridFS的块有个单独的集合。默认情况下,块将使用fs.chunks集合,如果有需要可以覆盖。这个块集合里面文档的结构非常简单:

{
"_id":ObjectId("......"),
"n":0,
"data":BinData("......"),
"files_id":ObjectId(".......")
}
  1. _id:标志唯一
  2. n:表示块的编号,也就是这个块在原文件中的顺序号
  3. data:包含组成文件块的二进制数据
  4. 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

 

  • 大小: 44.7 KB
2
0
分享到:
评论

相关推荐

    mongoDB文件存储_java_MongoDB_

    首先,MongoDB提供了GridFS(Grid File System)规范,这是一个用于存储和检索大文件的标准,如图片、视频或文档。GridFS将大文件拆分为多个小块(通常为255KB),以便更高效地存储和检索。每个文件块都是一个单独的...

    MongoDB数据库GRIDFS上传下载删除文件

    在MongoDB中,GRIDFS是一种特殊的数据存储方式,用于存储和检索大文件,如图片、视频或大型文档。它将文件分割成多个块(chunks),以便更高效地存储和检索。 1. **上传文件到MongoDB的GRIDFS** 在MongoDB中,使用...

    MongoDB.NET 2.2.4驱动版本对Mongodb3.3数据库中GridFS增删改查

    在MongoDB 3.3版本中,GridFS是一种用于存储和检索大型文件(如图像、视频等)的机制。GridFS将大文件分割成多个小块,每个块存储为单独的文档,这样可以方便地进行上传、下载和管理。 MongoDB.NET驱动是用于.NET...

    MongoDB的GridFS:存储大文件的解决方案.rar

    GridFS简介 什么是GridFS GridFS的工作原理 GridFS的应用场景 安装与配置 安装MongoDB 安装MongoDB驱动 GridFS基本操作 文件的上传 文件的下载 文件的删除 GridFS高级操作 文件分片与元数据管理 并发文件操作 文件...

    Mongodb + GridFS +Java 操作Mongodb中存储的文件

    GridFS 是 MongoDB 提供的一种用于存储和检索大型文件的标准规范,它将大文件分割成多个小块(chunks)存储,方便高效管理和检索。在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件...

    MongoDBTest_C++mongo_MongoDB_

    关于文件存储,MongoDB 的 GridFS 功能允许我们将文件存储在数据库中。首先,我们需要导入相关的头文件: ```cpp #include <mongocxx/gridfs.hpp> ``` 创建一个 `mongocxx::gridfs::bucket` 对象来操作 GridFS: ...

    MongoDB_two_MongoDB_

    9. GridFS:当单个文档大小超过16MB时,MongoDB使用GridFS来存储大文件,将它们分割成多个小块进行存储。 10. 应用开发:讨论如何在Java或其他编程语言中使用MongoDB的驱动程序进行应用开发,包括连接数据库、执行...

    Mongodb基于GridFS存储文件

    Mongodb基于GridFS存储文件,通过流的方式存储文件图片,以及读取功能。本人亲自测试、编写。值得信赖

    MongoDB学习笔记之GridFS使用介绍

    MongoDB的GridFS是一个强大的文件存储系统,专为在数据库中存储和检索大量小文件而设计。GridFS将文件拆分为多个数据块(chunk),每个块都有自己的文档存储在`fs.chunks`集合中,而文件元信息则保存在`fs.files`集合...

    MongoDB原子操作与GridFS.pdf

    对于 GridFS 的增删改查,MongoDB 提供了一个名为`mongofiles`的命令行工具,它允许用户方便地操作存储在GridFS中的文件。例如,可以使用`mongofiles add`命令添加文件,`mongofiles remove`删除文件,以及`...

    SOD.rar_MongoDB_sod.c_分布式文件数据库_读写_非关系型数据库

    - 文件存储:MongoDB的GridFS规范允许存储大文件,将文件拆分为多个块存储在多个文档中,适合存储图像、视频等大文件。 总结,"SOD.rar_MongoDB_sod.c_分布式文件数据库_读写_非关系型数据库"这个压缩包中的资源,...

    CSIS_Mongodb-源码.rar

    10. **GridFS**:对于大文件的存储,MongoDB提供了GridFS接口,它将大文件拆分为小块存储,便于管理和检索。 深入研究"CSIS_Mongodb-源码.rar"中的源代码,我们可以学习到如何设计和实现一个分布式数据库系统,包括...

    mongodb+GridFS文件的上传下载删除DEMO

    GridFS 是 MongoDB 提供的一种用于存储和检索大型文件(如图片、视频等)的标准机制,将大文件分成多个小块存储在 MongoDB 的集合中,以提高效率和可靠性。 在这个"mongodb+GridFS文件的上传下载删除DEMO"项目中,...

    db_operate.rar_API_MongoDB_as63t_mogodb

    14. GridFS:用于存储和检索大文件,当单个文档大小超过16MB时,可以使用GridFS。 15. Replication & Sharding:MongoDB支持复制集和分片,以实现高可用性和水平扩展。 在"db_operate"的示例中,你可能会看到这些...

    mongodb gridfs .NET(C#) 文件存储实例

    功能:基于mongodb gridfs实现简单文件上传、下载、搜索、删除。 开发环境:VS2012 mongodb驱动:官方Driver 上传控件:jquery uploadify 疑问:sort()方法可能有点问题 PS:有问题可以留言,欢迎交流~

    Mongodb GridFS图片文件存储解决方案

    GridFS 是 MongoDB 提供的一种用于存储和检索大文件的标准方法,如图片、视频或大型文档。在本文中,我们将深入探讨 GridFS 图片文件存储解决方案及其工作原理。 **GridFS 概述** GridFS 是 MongoDB 的一部分,它将...

    mongo-delphi-driver-master.zip_mongo delphi driver_mongodb资料

    "GridFS.dcu"文件可能包含了对MongoDB的GridFS存储系统的支持。GridFS是MongoDB用于存储大型文件(如图片、视频)的分布式文件系统。通过GridFS,你可以将大文件分割成小块存储,并能轻松地进行上传、下载和管理。 ...

    Mongodb的gridfs的C#的例子

    MongoDB的GridFS是一种用于存储和检索大文件的系统,它是MongoDB数据库的一部分,特别适合存储超过16MB的单个文档。在C#中,我们可以利用MongoDB .NET驱动程序来操作GridFS。以下是对GridFS在C#中使用的详细讲解。 ...

    mongodb 所需jar包及gridfs java示例代码

    以下是一个简单的Java示例,展示如何使用GridFS存储和检索文件: ```java import com.mongodb.client.gridfs.GridFSBucket; import com.mongodb.client.gridfs.GridFSBuckets; import ...

    7_mongoDB.docx

    7. GridFS:内置功能,用于存储大量小文件。 8. 脚本支持:可以直接在服务器端执行JavaScript脚本,提高开发效率。 9. 动态数据模型:无需预先定义表结构,数据结构可随时调整。 MongoDB 与传统的关系型数据库相比...

Global site tag (gtag.js) - Google Analytics