转自 http://blog.csdn.net/laigood12345/article/details/7414365
mongodb里面自带有一个分布式文件系统gridFs,它是以块的方式来存储文件的,一般的存储都够用了,国内一个使用例子是视觉中国使用它来进行上亿数据级的图片存储,可以看出这套文件系统还是挺强大的。下面介绍下如何用spring-data-mongodb来对其进行操作,其实spring-data-mongodb并没有对gridfs进行再次封装,我们只能自己根据需要简单封装下接口,mongodb java api中操作gridfs也是很简单的,1.得到DB对象,2.new 一个GridFSInputFile对象,这个对象相当于一个文件记录,包含文件和与这个文件相关的信息。3.调用save方法保存。读取文件时可以根据文件名和id来对文件进行查询,查询出来一个GridFSDBFile 对象,再把这个对象输出到流或文件中。
先注入MongoDbFactory
- @Autowired
- private MongoDbFactory mongoDbFactory;
获得DB对象
- DB db = mongoDbFactory.getDb();
保存文件(其中FS_NAME相当于gridfs文件系统的表名,可以有多个)
- public boolean saveFile(File file, String fileName, String contentType,
- DBObject metaData) {
- GridFSInputFile gfsInput;
- try {
- gfsInput = new GridFS(db, FS_NAME).createFile(file);
- gfsInput.setFilename(fileName);
- gfsInput.setContentType(contentType);
- gfsInput.setMetaData(metaData);
- gfsInput.save();
- } catch (IOException e) {
- log.error(e, e);
- return false;
- }
- return true;
- }
通过文件名读取文件
- public GridFSDBFile findFileByName(String fileName){
- GridFSDBFile gfsFile ;
- try {
- gfsFile = new GridFS(db, FS_NAME).findOne(fileName);
- } catch (Exception e) {
- log.error(e, e);
- return null;
- }
- return gfsFile;
- }
通过id读取文件
- public GridFSDBFile findFileById(String id){
- GridFSDBFile gfsFile ;
- try {
- gfsFile = new GridFS(db, FS_NAME).find(new ObjectId(id));
- } catch (Exception e) {
- log.error(e, e);
- return null;
- }
- return gfsFile;
- }
输出文件到OutputStream
- private boolean writeToOutputStream(OutputStream out, GridFSDBFile gfsFile) {
- try {
- gfsFile.writeTo(out);
- } catch (IOException e) {
- log.error(e, e);
- return false;
- }
- return true;
- }
相关推荐
mongodb-spark官方连接器,运行spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:1.1.0可以自动下载,国内网络不容易下载成功,解压后保存到~/.ivy2目录下即可。
Spring Data MongoDB提供了与MongoDB数据库交互的一系列抽象,包括MongoTemplate和Repository接口。通过这些接口,开发人员无需直接编写MongoDB的Java驱动程序代码,就能实现CRUD(创建、读取、更新和删除)操作,...
赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....
赠送jar包:mongodb-driver-core-4.2.3.jar; 赠送原API文档:mongodb-driver-core-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-core-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-core-4.2.3....
MongoDB Community Server(mongodb-org-server-5.0.8-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...
mongodb-java-driver-4.4.0.jar
MongoDB Community Server(mongodb-org-server-5.0.4-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...
MongoDB Community Server(mongodb-org-mongos-5.0.4-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...
Spring Data MongoDB 是 Spring 框架中的一个模块,专门用于简化与 MongoDB 数据库的交互。MongoDB 是一个流行的分布式文档数据库,以其灵活性和高性能而受到开发者们的青睐。Spring Data MongoDB 提供了高级抽象,...
MongoDB C++驱动程序(mongodb-cxx-driver)是用于与MongoDB数据库进行交互的C++接口,它提供了丰富的API来执行各种数据库操作。本资源包含了版本r3.6.2的驱动程序,该版本适用于使用Visual Studio 2017进行编译。...
spring-data-mongodb-referrence-docs-1.9.4
4. mongoexport.exe:与mongoimport相反,它能将MongoDB数据导出为JSON、CSV或TSV格式的文件,便于数据分析或者在不同系统间转移数据。 5. mongofiles.exe:这是一个用于管理和操作MongoDB GridFS文件系统的命令行...
8. **GridFS**:支持MongoDB的文件存储系统GridFS,用于存储和检索大文件,将文件拆分为多个块存储在MongoDB中。 9. **聚合框架**:提供了强大的聚合功能,允许用户在客户端进行复杂的数据分析,而无需将数据拉取到...
标题“spring-mongo-data”指的是Spring Data MongoDB项目,这是一个Java框架,用于简化与MongoDB数据库的交互。Spring Data是Spring框架的一部分,它提供了一种声明式的方法来处理各种数据存储,包括关系型数据库和...
- 这些特性极大地丰富了与 MongoDB 交互的方式,使得 **Spring Data MongoDB** 成为了与 MongoDB 集成的理想选择。 总之,**Spring Data MongoDB** 是一个强大的工具,它不仅简化了与 MongoDB 数据库的交互,还提供...
标题中的"spring-data-mongodb-cross-store-1.3.5.RELEASE.zip"表明这是一个关于Spring Data MongoDB Cross Store的开源项目,版本为1.3.5.RELEASE。Spring Data是Spring框架的一部分,它提供了与各种数据存储进行...
java运行依赖jar包
赠送jar包:mongodb-driver-core-4.2.3.jar; 赠送原API文档:mongodb-driver-core-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-core-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-core-4.2.3....
本案例主要介绍了如何在 Spring 4.1.3.RELEASE 版本下集成 MongoDB,并通过 Spring Data MongoDB 1.8.0 进行简单的数据操作。 #### 二、环境准备 - **Spring版本**:4.1.3.RELEASE - **Spring Data MongoDB版本**...
在 Scala 中与 MongoDB 进行交互,通常我们会使用 `mongo-scala-driver`,而不是 `mongo-java-driver`,因为 Scala 驱动提供了更符合 Scala 语言特性的 API 设计。本示例将详细介绍如何使用 `mongo-scala-driver` ...