mongodb支持多种语言,并且提供了多种语言的驱动。
这篇博客主要介绍如何mongodb存储以及读取文件
本人使用mongo-2.10.1.jar版本:
mongodb操作文件,主要是通过GridFS类。存储文件主要存放在fs中了,其中的fs是数据库默认的。
并且GridFS是直接与数据库打交道,与collection集合无关。
具体的操作如下:其中有相应的注释:
package com.mongo.dao;
import java.io.File;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;
/**
* 使用mongodb对文件的读取操作
* @author lhy
*
*/
public class GridFSTest {
public static void main(String[] args) throws Exception {
//saveFile();
readFile();
}
/**
* 存储文件
*/
public static void saveFile() throws Exception{
//连接服务器
Mongo mongo=new Mongo();
//连接数据库
DB db=mongo.getDB("testGridFS");
//文件操作是在DB的基础上实现的,与表和文档没有关系
GridFS gridFS=null;
gridFS=new GridFS(db);
String fileName="vltest.log";
File readFile=new File("d:/"+fileName);
GridFSInputFile mongofile=gridFS.createFile(readFile);
//可以再添加属性
mongofile.put("path","d:/"+fileName);
//保存
mongofile.save();
}
/**
* 读文件,读到磁盘上
* @throws Exception
*/
public static void readFile() throws Exception{
//链接服务器
Mongo mongo=new Mongo();
//连接数据库
DB db=mongo.getDB("testGridFS");
GridFS gridFs=null;
gridFs=new GridFS(db);
//查找条件
DBObject query=new BasicDBObject();
//查询的结果:
List<GridFSDBFile> listfiles=gridFs.find(query);
GridFSDBFile gridDBFile=listfiles.get(0);
//获得其中的文件名
//注意 : 不是fs中的表的列名,而是根据调试gridDBFile中的属性而来
String fileName=(String)gridDBFile.get("filename");
System.out.println("从Mongodb获得文件名为:"+fileName);
File writeFile=new File("d:/"+fileName);
if(!writeFile.exists()){
writeFile.createNewFile();
}
//把数据写入磁盘中
//查看相应的提示
gridDBFile.writeTo("d:/a.txt");
//写入文件中
gridDBFile.writeTo(writeFile);
}
}
其中图片也是这么存储的,把图片当作文件来存储。
运行上述存储结果如下:
分享到:
相关推荐
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
java面试——MongoDB面试专题.zip
NULL 博文链接:https://fantasticinblur.iteye.com/blog/650691
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
Java全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个...
java毕业设计——基于Vue+Node的外卖系统设计与实现(答辩PPT+源代码).zipjava毕业设计——基于Vue+Node的外卖系统设计与实现(答辩PPT+源代码).zipjava毕业设计——基于Vue+Node的外卖系统设计与实现(答辩PPT+源代码)...
代码不是很完美,基本实现图书管理系统的增删改查等基本功能,目前尚有一处缺陷未解决——在查询后只能在控制台看到结果,没有反馈到界面上,有兴趣的朋友可以加以修改,相信这是一个不错的Java+MongoDb的课程设计...
毕业设计——基于Express + Mongodb的报修系统设计与实现 .zip
面向字节_MongoDB.pdf
MongoDB面试题 Spring面试题 Spring Boot面试题 Spring Cloud面试题 RabbitMQ面试题 Dubbo 面试题 MyBatis 面试题 ZooKeeper 面试题 数据结构面试题 算法面试题 Elasticsearch 面试题 Kafka 面试题 微服务 面试题 ...
上篇文章给大家介绍了Mongodb中MapReduce实现数据聚合方法详解,我们提到过Mongodb中进行数据聚合操作的一种方式——MapReduce,但是在大多数日常使用过程中,我们并不需要使用MapReduce来进行操作。在这边文章中,...
hbase的JAVA客户端所需jar包 jedis的JAVA客户端所需jar包 mongo的JAVA客户端所需...大数据——四种数据库(MySQL,HBase,MongoDB,Redis)操作实例总结:https://blog.csdn.net/weixin_43042683/article/details/106230370
Java前后开发面试题,大厂进阶之路,基于JavaGuide、Cyc大佬、牛客上的面经及王道考研相关视频,并改进了其中说法矛盾或含糊之处。 包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多...
欢迎下载MongoDB数据库驱动jar包——mongo-java-driver-2.10.0.jar
本人是做JavaWeb的,可能多多少少还是遗留了Java的一些格式及规范,但爬虫千千万,却是Python最好使 Beautiful Soup4作为HTML/XML的解析器,其使用、解析难度都较为简单; 人性化的API,支持 lxml 的 XML解析器; ...
他是资深架构师、MongoDB中文社区联席主席——徐雷。徐雷专家专注于分布式架构,Java Spring Boot、Spring Cloud、MongoDB、Redis;拥有10年 开发经历,喜欢专研技术问题;同时还是《MongoDB实战》第2版、《24种...
短学期项目——文件检索系统APP 技术要求 Language: JAVA/C/GO/Shell/nodejs/python ... Database: file/mysql/mongodb ... Page: H5/CSS/JS/VUE/REACT ... Server: FTP/APACHE/NGINX/GIT ... 项目命题 要求实现一...
Docker —— 从入门到实践 - v1.0.pdf Dubbo部署文档.doc Dubbo面试专题.docx java后端面试题答案.pdf Java并发Fork-Join框架原理解析.docx JAVA核心知识整理.pdf JAVA核心知识点整理.pdf Java面试笔记.docx JAVA...
Spring Boot 应用程序 mvn spring-boot:run打开WebApp: 去做将 MongoDB 更新到 1.7(取决于 Spring Boot Parent)——使用 Java8 LocalDate 而不是 java.util.Date 更新客户搜索以显示搜索结果
关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...