转载参考:http://www.ityouknow.com/springboot/2017/05/08/spring-boot-mongodb.html

MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前 NoSql 数据库中比较热门的一种。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB 是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB 对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

MongoDB 中的一条记录就是一个文档,是一个数据结构,由字段和值对组成。MongoDB 文档与 JSON 对象类似。字段的值有可能包括其它文档、数组以及文档数组。MongoDB 支持 OS X、Linux 及 Windows 等操作系统,并提供了 Python,PHP,Ruby,Java及 C++ 语言的驱动程序,社区中也提供了对 Erlang 及 .NET 等平台的驱动程序。

MongoDB 的适合对大量或者无固定格式的数据进行存储,比如:日志、缓存等。对事物支持较弱,不适用复杂的多文档(多表)的级联查询。

MongoDB 的增删改查

1、pom 包配置

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-mongodb</artifactId>
  4. </dependency>

2、在 application.properties 中添加配置

  1. ################mongodb相关配置########################
  2. spring.data.mongodb.host=127.0.0.1
  3. spring.data.mongodb.port=27017
  4. spring.data.mongodb.database=test
  5. spring.data.mongodb.username=test
  6. spring.data.mongodb.password=123456

3、创建数据实体

  1. @Data
  2. public class User implements Serializable{
  3.  
  4. private static final long serialVersionUID = 7112551853638025764L;
  5. private String name;
  6.  
  7. private Long id;
  8.  
  9. private String pwd;
  10.  
  11. }

4、创建实体的增删改查操作

  1. @Test
  2. public void saveMongoDb(){
  3. User user = new User();
  4. user.setId(1L);
  5. user.setName("测试");
  6. user.setPwd("123456");
  7. User save = mongoTemplate.save(user);
  8. System.out.println(save);
  9. }
  10.  
  11. @Test
  12. public void updateMongoDb(){
  13. Update update = new Update().set("className","高2012级(15)班");
  14. Query query = new Query(Criteria.where("id").is("8a43c499-3743-4833-9894-926d5b1aff2c"));
  15. mongoTemplate.updateFirst(query,update,Student.class);
  16. }
  17.  
  18. @Test
  19. public void findMongoDb(){
  20. Query query = new Query(Criteria.where("id").is(1L));
  21. long s= System.currentTimeMillis();
  22. User user = mongoTemplate.findOne(query, User.class,"user");
  23. long e = System.currentTimeMillis();
  24. System.out.println("耗时:"+(e-s));
  25. System.out.println(user);
  26. }
  27.  
  28. @Test
  29. public void delMongoDb(){
  30. Query query = new Query(Criteria.where("id").is(1L));
  31. DeleteResult remove = mongoTemplate.remove(query, User.class);
  32. System.out.println(remove);
  33. }

5、查看验证结果

可以使用工具 MongoVUE 工具来连接后直接图形化展示查看,也可以登录服务器用命令来查看

1.登录 mongos

bin/mongo -host localhost -port 20000

2、切换到 test 库

use test

3、查询 user 集合数据

db.user.find()

根据3查询的结果来观察测试用例的执行是否正确。

springboot中MongoDB的使用的更多相关文章

  1. SpringBoot中MongoDB注解概念及使用

    spring-data-mongodb主要有以下注解 @Id 主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束.如果自己不设置@Id主键,mongo会自动生成一个唯一主 ...

  2. SpringBoot(十一):Spring boot 中 mongodb 的使用

    原文出处: 纯洁的微笑 mongodb是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多.由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 ...

  3. springboot:Spring boot中mongodb的使用(山东数漫江湖)

    mongodb是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多.由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配置 ...

  4. mongodb基本操作和在springboot中的使用

    本文介绍mongodb的使用 说明 起步 mongo通用类型 mongoshell的操作 CRUD操作 shell命令操作 索引操作 mongo在springboot中的使用 目录结构 依赖 prop ...

  5. SpringBoot学习笔记(10)-----SpringBoot中使用Redis/Mongodb和缓存Ehcache缓存和redis缓存

    1. 使用Redis 在使用redis之前,首先要保证安装或有redis的服务器,接下就是引入redis依赖. pom.xml文件如下 <dependency> <groupId&g ...

  6. MongoDB系列:三、springboot整合mongoDB的简单demo

    在上篇 MongoDB常用操作练习 中,我们在命令提示符窗口使用简单的mongdb的方法操作数据库,实现增删改查及其他的功能.在本篇中,我们将mongodb与spring boot进行整合,也就是在j ...

  7. java操作mongodb & springboot整合mongodb

    简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...

  8. springboot 集成mongodb

    环境依赖 在pom文件引入spring-boot-starter-data-mongodb依赖: <dependency> <groupId>org.springframewo ...

  9. SpringBoot整合mongoDB

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 这一片文章介绍一个springboot整合mongodb,如果你了解整合mysql之类的 ...

随机推荐

  1. OPTIONS请求后台处理 跨域Filter

    import cn.hutool.http.Method; import org.springframework.web.filter.OncePerRequestFilter; import jav ...

  2. Flink 在人工智能领域的应用实践

    人工智能是未来十年最重要的技术革命与驱动力,在各行各业产生着日益重要的作用,它与大数据的发展相辅相成,不仅推动人类社会迈入更智慧的世界,也为数据的应用带来无可估量的价值. 11 月 28 - 30 日 ...

  3. AutoLayout面试题记录-用NSLayoutConstraint写动画

    import UIKit class ViewController: UIViewController { @IBOutlet weak var topY: NSLayoutConstraint! @ ...

  4. http://research.google.com/archive/mapreduce.html

    http://research.google.com/archive/mapreduce.html

  5. __I、 __O 、__IO是什么意思?怎么用?

    出处:http://www.chuxue123.com/forum.php?mod=viewthread&tid=122&ctid=3 __I. __O .__IO是什么意思?这是ST ...

  6. python如何判断1个列表中所有的数据都是相等的?

    方法一: 元素两两比较,如果有数据不同,则r的值变为false #!/usr/bin/python a=[22,22,22,22] b = len(a) r=True for i in range(b ...

  7. win10 文件管理器频繁卡死

    参考: https://www.xitmi.com/1589.html

  8. CSS基础--属性选择器、伪类选择器

    属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  9. HTML5--sessionStorage、localStorage、manifest

    sessionStroage: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  10. C++学习笔记(三)--数组、字符串

    1.数组,C++中不允许数组的下标值为变量,只能是常量或者常量表达式,必须先定义后使用.数组赋初值几种常见方式: int a[] = {1,2,3,4,5}: int a[4] = {2,1,3,4} ...