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);
} }

MongoDB学习-->Gridfs分布式存储&DBRef关联查询的更多相关文章

  1. ofbiz学习笔记01--多表关联查询

    不管做什么项目,肯定会用到多表关联查询数据,从网络查询得知ofbiz有三种多表关联查询方法 实现一:Screem.xml 中的 section 里,加 <action>, 加 get-re ...

  2. Mybatis框架学习总结-表的关联查询

    一对一关联 创建表和数据:创建一张教师表和班级表,这里假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. CREATE TABLE teacher( t_id INT PRIM ...

  3. Mybatis学习总结四(关联查询)

    一.一对一查询 实例:查询所有订单信息,关联查询下单用户信息. Method1:使用resultType,定义订单信息po类,此po类中包括了订单信息和用户信息. public class Order ...

  4. 详解MongoDB中的多表关联查询($lookup)

    一.  聚合框架 聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息. 聚合管道操作主要包含下面几个部分: 命令 功能描述 $projec ...

  5. 详解MongoDB中的多表关联查询($lookup) (转)

    一.  聚合框架 聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息. 聚合管道操作主要包含下面几个部分: 命令 功能描述 $projec ...

  6. [Spring Data MongoDB]学习笔记--MongoTemplate查询操作

    查询操作主要用到两个类:Query, Criteria 所有的find方法都需要一个query的object. 1. 直接通过json来查找,不过这种方式在代码中是不推荐的. BasicQuery q ...

  7. mongoDB学习笔记——在C#中查询

    1.下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动貌似有很多种,如官方提供的samus. 实现思路大都类似.这里我们用官方提供的mongo-csh ...

  8. MongoDB 学习笔记之 DBRef

    DBRef: MongoDB建模有两种方式,一种是内嵌(Embed),另一种是连接(Link).内嵌比较好理解,就是字段内容是个数组,数组内再包含文档,而我们今天介绍的是另一种,称为链接DBRef.由 ...

  9. MongoDB 集合间关联查询后通过$filter进行筛选

    在前面的分享中,有讲解 “详解MongoDB中的多表关联查询($lookup)” 一节,其内容涵盖了常见的集合管理的需求.我们知道文档的选择都是通过$match进行匹配刷选.但这是文档间的匹配筛选,并 ...

随机推荐

  1. .net创建activex实现摄像头拍照

    using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices ...

  2. hive中select中DISTINCT的技巧和使用

    hive中select中DISTINCT的技巧和使用 单表的唯一查询用:distinct 多表的唯一查询用:group by 在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 ...

  3. Webpack 入门学习

    1.什么是Webpack? Webpack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等 ...

  4. 根据用户ID生成不重复的最小6位随机邀请码

    网上看到一个例子,借鉴修改一下 实现根据long类型的用户ID生成6位随机邀请码,并且根据邀请码能算出用户ID.代码如下: /** 自定义进制(选择你想要的进制数,不能重复且最好不要0.1这些容易混淆 ...

  5. 评价PE基金绩效的常用指标

    作为信息系统,辅助管理层决策是重要的功能之一.前文介绍了PE基金管理系统的建设,对PE业务的运转有了一些了解,但没有介绍如何评价PE基金的绩效,而这是管理层作出重大决策的主要依据之一.PE基金本质也是 ...

  6. css对应中文字的英文名称

    中文名 英文名 Unicode Unicode 2 Mac OS 华文细黑 STHeiti Light [STXihei] \534E\6587\7EC6\9ED1 华文细黑 华文黑体 STHeiti ...

  7. 解决Mysql导入大数据出现gone away的问题

    在用Mysql Yog或者PHPMyadmin等工具导入数据量大的sql文件时,会提示“gone away”,那么如何处理这个问题尼? 在Mysql对应的配置文件中my.ini文件中加入以下配置: # ...

  8. 看动画,秒懂人工智能&物联网

  9. C语言中字符串数组的遍历和比较

    /* The list of known types of default packet. */static char  *_default_packet_types[] = {    "d ...

  10. SAP成都研究院DevOps那些事

    今天的文章来自我的同事平静静,SAP成都研究院一位程序媛.平静静2010年加入SAP,熟悉她的人一般都叫她平静.在她待过的每个小组,平静静都不是最引人瞩目的开发人员,然而她总是能一如既往,保质保量地完 ...