mongodb自带的一个分布式文件系统

fs.files _id filename md5 size uploaddate contenttype metadata {"user_id":1}

fs.chunks _id files_id n(序号) data

{ "metadata" : { "user_id" : 101} , "filename" : "video.min2.js" , "aliases" : null , "chunkSize" : 261120 , "uploadDate" : { "$date" : "2017-03-28T13:48:20.784Z"} , "length" : 282753 , "_id" : { "$oid" : "58da69a45aa6c70234eb70f1"} , "contentType" : null , "md5" : "e5ab0872d9b25fcb7268df3a93c29873"}

测试GridFs文件上传与下载

 package com.tangzhe.gridfs;

 import com.mongodb.BasicDBObject;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSFile;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.gridfs.GridFsTemplate;
import org.springframework.test.context.junit4.SpringRunner; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; /**
* Created by 唐哲
* 2018-03-15 9:33
* 测试GridFs文件上传与下载
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class GridFsTest { @Autowired
private GridFsTemplate gridFsTemplate; /**
* 测试GridFs文件上传
*/
//@Test
public void gridFsUpload() throws FileNotFoundException {
//System.out.println(gridFsTemplate);
File file = new File("D:\\IdeaProjects\\cxytiandi\\mongodb-demo\\upload.txt");
GridFSFile gridFSFile = gridFsTemplate.store(new FileInputStream(file), file.getName(), new BasicDBObject("user_id", 101));
System.out.println(gridFSFile.toString());
} /**
* 测试GridFs文件下载
*/
//@Test
public void gridFsDownload() throws IOException {
GridFSDBFile gridFSDBFile = gridFsTemplate.findOne(Query.query(Criteria.where("_id").is("5aa9cf31d678412b40ff5ab4")));
gridFSDBFile.writeTo("D:\\IdeaProjects\\cxytiandi\\mongodb-demo\\download.txt");
} }

DBRef关联查询

 package com.tangzhe.dbref;

 import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; /**
* Created by 唐哲
* 2018-03-15 16:19
* DBRef关联查询
*/
@Document(collection = "class_info")
@Data
public class ClassInfo { @Id
private String id;
private String name; }
 package com.tangzhe.dbref;

 import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document; /**
* Created by 唐哲
* 2018-03-15 16:29
* DBRef关联查询
*/
@Document(collection = "student")
@Data
public class Student { @Id
private String id;
private String name;
@DBRef
private ClassInfo classInfo; }
 package com.tangzhe.dbref;

 import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.test.context.junit4.SpringRunner; /**
* Created by 唐哲
* 2018-03-15 16:30
* 测试DBRef关联查询
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class DbRefTest { @Autowired
private MongoTemplate mongoTemplate; //@Test
public void test1() {
ClassInfo classInfo = new ClassInfo();
classInfo.setName("三年一班");
mongoTemplate.save(classInfo); Student student = new Student();
student.setName("张三");
student.setClassInfo(classInfo);
mongoTemplate.save(student);
} //@Test
public void test2() {
ClassInfo classInfo = mongoTemplate.findOne(Query.query(Criteria.where("id").is("5aaa30c0d678410bac20db1a")), ClassInfo.class);
Student student = new Student();
student.setName("李四");
student.setClassInfo(classInfo);
mongoTemplate.save(student);
} //@Test
public void test3() {
Student student = mongoTemplate.findOne(Query.query(Criteria.where("id").is("5aaa30c0d678410bac20db1b")), Student.class);
System.out.println(student);
} }

最新文章

  1. [MySQL Reference Manual] 23 Performance Schema结构
  2. sqlserver事务加锁机制
  3. 剑指offer编程题java实现(正在更新)
  4. Source Insight常用功能设置
  5. 将本地代码上传至github备份的操作方法
  6. [荐]使用jQuery清空file文件域
  7. word文档中查找和替换空格符和回车符
  8. DB2日期和时间函数汇总
  9. Google代码实验室
  10. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现
  11. PCB的整个加工流程
  12. 飘逸的python - 发送带各种类型附件的邮件
  13. Java良葛格 学习笔记
  14. 每天一个linux命令30)--chgrp命令
  15. MySQL之存储过程和函数
  16. 结合JDK源码看设计模式——单例模式
  17. js声明引入和变量声明和变量类型、变量
  18. MongoDB 日志切割三种方式
  19. Qt5.8 在windows下mingw静态编译
  20. webpack对于引入的模块无法智能代码提示

热门文章

  1. ASPX1
  2. 数据库迁移后报错提示MySQL Error:Can''t find file errno: 13 - Permission denied的解决方法
  3. SQL SERVER之填充因子
  4. ADO.Net——增、删、改、查
  5. 新建博客第一天,随意来一发Win8运行命令大全
  6. 使Win10用户获得特殊权限以便删除相应文件(夹)
  7. CoreData介绍
  8. Spark 集群环境搭建
  9. Linux增加sudo用户
  10. Java中的集合Collection接口