在Mongodb中以GridFSB方式存放文件有两种方式:1、命令行方式mongofiles 2、客户端驱动编程(以Java为例)
1、命令行方式mongofiles
在bin目录下有一个命令mongofiles.exe,即可完成命令行下向Mongodb数据库中插入文件数据。这里以前述所搭的4个分片,每分片3个复制集,3个ConfigSever ,1个路由节点的Windows的模拟集群为例。
D:/mongodb-win32-i386-1.8.0/bin>mongofiles.exe -host 127.0.0.1:50000 -d wlb put mongodump.exe
connected to: 127.0.0.1:50000
added file: { _id: ObjectId('4d91dbc1fb02c495a0a479d7'), filename: "mongodump.exe", chunkSize: 262144, uploadDate: new Date(1301404609850), md5: "647dcae88077e6
fa2bb3be6b0cdebb07", length: 3271680 }
done!
向数据库wlb中插入一个文件,即Mongodb/bin/mongodump.exe,所使用的Mongodb集群的路由节点为127.0.0.1,端口为50000,其中put为命令,表示向Mongodb中上传文件,也存在get、delete两个其它命令,分别表示取得文件和删除文件。
以如下命令启动mongo,进入wlb数据库,执行 db.fs.files.find()即可看到GridFS中的文件列表.
D:/mongodb-win32-i386-1.8.0/cmd>cd d:/mongodb-win32-i386-1.8.0/bin
D:/mongodb-win32-i386-1.8.0/bin>call mongo.exe 127.0.0.1:50000/admin
MongoDB shell version: 1.8.0
connecting to: 127.0.0.1:50000/admin
> use wlb
switched to db wlb
> db.fs.files.find()
{ "_id" : ObjectId("4d91dbc1fb02c495a0a479d7"), "filename" : "mongodump.exe", "chunkSize" : 262144, "uploadDate" : ISODate("2011-03-29T13:16:49.850Z"), "md5" :
"647dcae88077e6fa2bb3be6b0cdebb07", "length" : 3271680 }
2、以Java API来存取文件
这里以mongo-2.5.jar为例,代码如下:
- package com.zhangzk.mongodb;
- import java.io.File;
- import java.net.UnknownHostException;
- import java.util.Date;
- import java.util.List;
- import com.mongodb.BasicDBObject;
- import com.mongodb.DB;
- import com.mongodb.DBCollection;
- import com.mongodb.DBCursor;
- import com.mongodb.DBObject;
- import com.mongodb.Mongo;
- import com.mongodb.MongoException;
- import com.mongodb.gridfs.GridFS;
- import com.mongodb.gridfs.GridFSInputFile;
- public class MongoDBClientTest {
- public static void main(String[] args) {
- // initData();
- // query();
- initData4GridFS();
- }
- private static void initData4GridFS() {
- long start = new Date().getTime();
- try {
- Mongo db = new Mongo("127.0.0.1", 50000);
- DB mydb = db.getDB("wlb");
- File f = new File("D://study//document//MySQL5.1参考手册.chm");
- GridFS myFS = new GridFS(mydb);
- GridFSInputFile inputFile = myFS.createFile(f);
- inputFile.save();
- DBCursor cursor = myFS.getFileList();
- while(cursor.hasNext()){
- System.out.println(cursor.next());
- }
- db.close();
- long endTime = new Date().getTime();
- System.out.println(endTime - start);
- System.out.println((endTime - start) / 10000000);
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
相关推荐
Mongodb基于GridFS存储文件,通过流的方式存储文件图片,以及读取功能。本人亲自测试、编写。值得信赖
这个压缩包"Vue+axios+Spring Boot+mongoDB 基于Mongo图片存储和基于GridFS的文件存储.zip"提供了一个完整的解决方案,结合了前端Vue.js框架、axios库、后端Spring Boot微服务以及MongoDB数据库的GridFS文件系统,...
功能:基于mongodb gridfs实现简单文件上传、下载、搜索、删除。 开发环境:VS2012 mongodb驱动:官方Driver 上传控件:jquery uploadify 疑问:sort()方法可能有点问题 PS:有问题可以留言,欢迎交流~
2,Nginx_GridFS 这是一个基于MongoDB C驱动程序的Nginx插件。 编译代码并安装我在此仓库中制作了一个快速,使用sudo运行它。 准备好Nginx之后,修改/usr/local/nginx/conf/nginx.conf下的配置文件(如果您没有更改...
MongoDB是一个基于文档的NoSQL数据库,由C++语言编写,旨在为大量分布式数据提供高性能、高可用性和高灵活性的数据存储解决方案。MongoDB的主要特点包括: 1. **文档导向**:MongoDB存储BSON(二进制JSON)格式的...
本项目基于MongoDB数据库和Spring Boot框架实现了一个文件服务器,旨在提供高效、可靠的文件存储和检索服务。以下将详细讲解如何利用MongoDB和Spring Boot构建这样的系统。 首先,MongoDB是一个流行的NoSQL数据库,...
总的来说,这个基于 MongoDB 的文件管理系统提供了灵活、可扩展的文件存储解决方案,特别适合处理各种类型的文件,如图片、Excel 和 Word 文档。通过单独部署,用户可以根据自己的需求进行定制和扩展,同时确保数据...
MongoDB是一种基于分布式文件存储的NoSQL数据库系统,而MVC则是一种软件设计模式,常用于构建可维护、可扩展的Web应用程序。在这个“MongoDB+MVC上传例子”中,我们将探讨如何结合这两者来实现文件上传功能。 首先...
在本文中,我们将深入探讨如何使用Spring Boot构建一个WebSocket服务器,并与MongoDB集成,特别是利用GridFS存储文件,包括图片。此外,我们还将讨论非GridFS的文件存储方式及其限制。 首先,Spring Boot是一个简化...
:基于可靠性的需求,各个公司对容灾的要求也是越来越高。单在数据中心备份副本明显已经跟不上...LogicMonitor——用于实体、虚拟以及云环境基于SaaS的监视方案,我们希望用户数据文件的副本在数据中心内外都有储存。
基于 webtorrent、assetgraph 和 mongodb 的 gridfs 构建的分布式、不可审查的网页归档器 尚未完成/可用 当前状态/进展 工作(但可能需要清理) 抓取页面并将资产保存到 通过包含存档页面所有资产的 从检索和提供...
MongoDB.GridFS.dll是用于MongoDB的GridFS存储系统。GridFS是一种分布式文件存储系统,设计用来存储和检索大型文件,如图片、视频或文档。它将文件分割成多个小块,然后将这些块存储在MongoDB的两个特殊集合中:`fs....
基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,适合用作毕业设计、课程设计作业等,项目均经过测试,可快速部署运行! 基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,...
本文探讨了如何利用MongoDB及其GridFS文件存储规范来设计和实现一个企业分布式图片服务系统。该系统利用了MongoDB的分布式特性,旨在解决传统图片服务中的性能瓶颈、分布式部署复杂性以及备份难题。 首先,需要了解...
- **GridFS**:MongoDB中的一个模块,用于存储和检索文件,尤其是大文件。 #### MongoDB特性与结构 ##### MongoDB特性 MongoDB具备以下特性: 1. **模式自由**:数据模型灵活,可以动态地调整数据结构。 2. **...
Multer的GridFS存储引擎 存储引擎,用于将上传的文件直接存储到MongoDb。 :fire: 产品特点与MongoDb版本2和3。 真正简单的API。 与等于或大于10的任何Node.js版本兼容。 缓存基于url的连接。 与猫鼬连接对象兼容。 ...
MongoDB 使用 GridFS来储存大文件。每个BSON对象大小不能超过4MB。字段名限制:不能以“$” 开头;不能包含“.” ;“ _id” 是系统保留的字段,但用户可以自己储存唯一性的数据在字段中。MongoDB 为每个数据库分配...
5. **GridFS**:针对存储大文件或大量文件,MongoDB提供了GridFS机制。GML数据往往包含大量的地理空间数据和图像,可以利用GridFS来存储这类大对象。 6. **核心模式和应用模式存储**:在云存储架构中,通常会有核心...
- **文件型数据**:使用文件库管理系统和GridFS进行管理。 - **空间数据**:采用专题分层和空间分幅方式管理矢量数据。 - **栅格数据**:同一分辨率的栅格数据组织在一层内,不同分辨率的数据根据分辨率大小决定层级...