1.MongoDB概述
1.1 MongoDB简介
什么是MongoDB ?
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。mongodb官网地址:https://www.mongodb.org.cn/
1.2 MongoDB概念
Mongodb中基本的概念是文档、集合、数据库。
MongoDB概念解析:https://www.mongodb.org.cn/tutorial/6.html
MongoDB的术语/概念

一个Mongodb中可以建立多个数据库。MongoDB的默认数据库为"db",该数据库存储在data目录中。MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
文档是一个键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库管理系统RDBMS 有很大的区别,也是 MongoDB 非常突出的特点。
RDBMS 与MongoDB的区别

集合就是 MongoDB 文档组,类似于 RDBMS 中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
数据库的信息是存储在集合中。它们使用了系统的命名空间。
MongoDB 数据类型

Spring Boot整合MongoDB
实训操作1
一、安装MongoDB
1. 从官方网站https://www.mongodb.com/download-center/community下载自己操作系统对应版本的MongoDB,双击按照默认安装即可。
官网教程:
启动Mongodb服务:https://www.mongodb.org.cn/tutorial/59.html
MongoDB数据增删:https://www.mongodb.org.cn/tutorial/8.html
MongoDB高级查询:https://www.mongodb.org.cn/tutorial/34.html
2.从官方网站https://www.mongodb.com/download-center/compass下载。安装MongoDB的图形界面管理工具MongoDB Compass。
官网教程:
https://docs.mongodb.com/manual/reference/connection-string/
二、Spring Boot整合MongoDB
Spring对MongoDB的支持主要是通过Spring Data MongoDB实现的,Spring Data MongoDB为我们提供了如下功能。
1)对象/文档映射注解

2)MongoTemplate
与JdbcTemplate一样,Spring Data MongoDB也我们提供了一个MongoTemplate,而MongoTemplate为我们提供了数据访问的方法。
3)Repository
类似于Spring Data JPA,Spring Data MongoDB也我们提供了Repository的支持,使用方式和Spring Data JPA一样,示例如下:

Spring Boot对MongoDB的自动配置位于org.springframework.boot.autoconfigure.mongo包中。主要配置了数据库连接、MongoTemplate。
Spring Boot对MongoDB提供了一些默认属性,如默认端口号为27017、默认服务器为localhost、默认数据库为test、默认无用户名和无密码访问方式,并默认开启了对Repository的支持。因此,我们在Spring Boot应用中,只需引入spring-boot-starter-data-mongodb依赖即可按照默认配置操作MongoDB数据库。
我们可以在配置文件application.properties中使用以“spring.data.mongodb”为前缀的属性来配置MongoDB的相关信息。
spring.data.mongodb.uri= mongodb://127.0.0.1:27017/mongo
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=root
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.database=mongo
三、增删改查
【例6-11】在Spring Boot应用中,对MongoDB数据库的增删改查。
1.创建基于spring-boot-starter-data-mongodb依赖的Spring Boot Web应用ch6_8
2.配置application.properties文件
3.创建领域模型
4.创建数据访问接口
5.创建控制器层
6.运行
操作讲解
作业说明:
MongoDB集成SpringBoot案例二
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!--mongodb Java驱动-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.10</version>
</dependency>
</dependencies>
spring.data.mongodb.uri= mongodb://127.0.0.1:27017/mongo
log4j.category.org.springframework.data.mongodb=DEBUG
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %40.40c:%4L - %m%n
Repository和Template的选择。SpringData为我们提供了两种方式对数据库进行操作,第一种是继承Repository接口,第二种是直接使用Template的方式对数据进行操作。
第一种方式,直接继承xxxRepository接口,其最终将会继承Repository标记接口,我们可以不必自己写实现类,轻松实现增删改查、分页、排序操作,但是对于比较复杂的查询,使用起来就比较费力。
第二种方式,直接使用xxxTemplate,这需要自己写实现类,但是这样增删改查可以自己控制,对于复杂查询,用起来得心应手。

MongoDB操作
3.1 MongoDB数据增删
MongoDB数据增删:https://www.mongodb.org.cn/tutorial/8.html
3.2 MongoDB高级查询
MongoDB高级查询:https://www.mongodb.org.cn/tutorial/34.html
4. MongoDB客户端工具
官网下载地址:https://www.mongodb.com/try/download/compass
官网教程:https://docs.mongodb.com/manual/reference/connection-string/
官方自己推出的 GUI 可视化管理工具,功能有限。免费简洁,不支持 SQL 查询,支持性能监控。适用于 Windows,macOS 和 Linux 系统。
官网下载地址:https://robomongo.org/download
Robo 3T 前身是 Robomongo,后被 3T 公司收购,是一款免费开源的 GUI 管理工具。支持 MongoDB 4.0+,轻量级 GUI,支持语法填充等等。适用于 Windows,macOS 和 Linux 系统。
官网下载地址:http://www.navicat.com.cn/download/navicat-for-mongodb
老牌的数据库管理工具,支持多种数据库的集成,已集成 MongoDB 类型,属于付费型管理工具。好处是用会了一个 DB 版的 Navicat,所有 DB 版都会很顺手,维持一套操作习惯,如果再肌肉记忆一些快捷键,会更加高效。
官网下载地址:https://nosqlbooster.com/downloads
NoSQLBooster for MongoDB(以前叫 MongoBooster)风格有点类似于 EasyUI,支持副本集,独立主机和分片群集连接,提供了全面的服务器监控工具、fluent 查询构建器、SQL 查询、查询代码、任务调度、ESNext 支持和真正的智能感知体验等。提供了付费和免费两种版本。适用于 Windows,macOS 和 Linux 系统。
Studio 3T官网下载地址:https://studio3t.com/download/
超过 100,000 的开发人员和数据库管理员使用 Studio 3T 作为 MongoDB GUI 的首选。Studio 3T 属于收费工具,30 天的免费试用期,Studio 3T 具有更多更强大的功能并提供企业支持服务,支持副本集、独立主机和分片集群连接,支持导入导出,SQL 查询,语法填充,支持 MongoDB 4.0+ 等等。适用于 Windows,macOS 和 Linux。
MongoDB 的Java操作
MongoDB Java操作:https://www.mongodb.org.cn/drivers/4.html
1.引入依赖
https://search.maven.org/artifact/org.mongodb/mongo-java-driver/3.12.10/jar
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.10</version>
</dependency>
2.代码实现 同上例MongoExample.rar中MongoUtils.java
MongoUtils 实现MongoDB连接,创建,删除数据库,创建,删除,更新文档以及检索所有文档。
6.官方文档
Spring Data MongoDB官方文档
https://spring.io/projects/spring-data-mongodb
Spring Boot与Spring Data MongoDB版本兼容关系
https://docs.spring.io/spring-data/mongodb/docs/3.2.4/reference/html/#compatibility.matrix不兼容。注意事项:springboot与spring data mongoDB版本兼容问题,不同版本之间互
不兼容。