哈喽各位同学们大家好呀,今天小编为大家分享开发者学院中课程“Spring Boot 2.5实战MongoDB数据库与面试题”干货总结哦~Spring Boot 2.5.x开发实战可是Java中级工程师必备课程;
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇
课程名称:Spring Boot 2.5.x开发实战
课程地址:https://developer.aliyun.com/learning/course/71
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java
Spring Boot 2.5实战MongoDB数据库与面试题
- Spring Boot 2.5实战MongoDB数据库
阿里云大学MongoDB的高级实战课程,涵盖入门到各种高级主题、索引、存储引擎及各种对接包括日志加密、安全身份验证、高可用集群,分片集群等。
《阿里巴巴MongoDB4.0高级实战》
- MongoDB数据库入门:MongoDB概览、4.0新特性、下载安装、Shell连接及基本操作等
- MongoDB数据库数据查询与分析:MongoDB查询命令、分析、聚合等
- MongoDB数据库核心知识:MongoDB数据库操作、集合、存储引擎、数据模型等
- MongoDB数据库管理:MongoDB数据相关操作、数据备份与恢复等
- MongoDB数据库性能分析与调优:MongoDB索引、算法、查询计划等
- MongoDB与Java开发实战:基于Java Spring Boot和云数据库MongoDB开发HTML5博客应用
- MongoDB数据库排错日志分析: MongoDB日志收集、经典问题解析、常用问题排查工具等
- MongoDB数据库安全机制:MongoDB身份验证、加密、典型机制等
- MongoDB数据库HA高可用集群架构:主从复制、读写分离、自动化故障转移、HA集群,阿里云数据库集 群等
- MongoDB数据库运维:数据库维护、升级,云数据库MongoDB版运维、监控工具,数据库容灾方案等
- MongoDB优化实战案例:讲解MongoDB的索引原理,以及常见的优化手段,并分析一些具体的优化案例
- MongoDB Sharding集群原理与架构优化:讲解Sharding集群原理、架构设计方法,以及常见的架构优化 手段
- 官方网站:https://edu.aliyun.com/workshop/3/course/1044
二、NoSQL排名第一 MongoDB
移动互联网架构
MongoDB简介
MongoDB是文档型数据库,较灵活,容易做集群搭建,在互联网公司运用广泛。
1. NoSQL排名第一,BAT互联网公司必备;
2. 分布式数据库;
3. 由C++语言编写,特点是高性能、易部署、易使用、存储数据非常方便;
4. 旨在为Web应用提供可扩展的高性能数据存储解决方案;
5. MongoDB由10gen团队所开发,于2009年2月首度推出.
6. MongoDB开源、跨平台,
7. 支持 Windows、Linux、OS X和Solaris系统
8. MongoDB最新版本为4.0,支持跨文档事务
MongoDB优点
- 灵活的数据模型
- 便于横向拓展
- 自动分片存储
- 支持分布式查询
- 集成内存缓存
- 高性能高并发
MongoDB的典型行业案例
MongoDB版本特性
推荐大家用3.0以后的版本,因为3.0以后默认Wiredtiger,性能、稳定性更强大,4.0以后基本上也支持分布式事务Transaction,包括分片集群、复制集群事务,其他并行异步复制等,提升了针对大容量数据库迁移的优化。
- 安装MongoDB数据库
下载MongoDB4.4
官方下载,windows可以直接下,Linux直接用命令,安装后启动MongoDB服务。
安装最新MongoDB
Linux安装MongoDB4.0
可视化管理工具
• Robomongo
• Robo 3T
• Compass
MongoDB操作命令
• > show dbs
• admin 0.000GB
• config 0.000GB • local 0.000GB
• > show users
• > show collections
• > use Alibaba
• switched to db alibaba
• > db.users.insert({"name":"Java"})
• WriteResult({ "nInserted" : 1 })
• > db.users.insert({"name":"mongo","age":18})
• WriteResult({ "nInserted" : 1 })
• > db.users.find() • { "_id" :ObjectId("604ca8c13bfab2e14d4927d4"), "name" : "Java" }
• { "_id" : ObjectId("604ca8e33bfab2e14d4927d5"), "name" : "mongo", "age" : 18 }
• > db.users.insert({"name":"frank","password":"1234","age":18})
• WriteResult({ "nInserted" : 1 }) • > db.users.find()
• { "_id" : ObjectId("604ca8c13bfab2e14d4927d4"), "name" : "Java" } • { "_id" : ObjectId("604ca8e33bfab2e14d4927d5"), "name" : "mongo", "age" : 18 }
• { "_id" : ObjectId("604ca9623bfab2e14d4927d6"), "name" : "frank", "password" : "1234", "age" : 18 }
四、Spring Data实战 MongoDB数据库
Spring Data 2.5 MongoDB新特性
1. 简化Java的MongoDB数据库开发API
2. 提供一致的基于Spring的编程模型
3. Spring configuration 支持@Configuration classes or an XML namespace
4. 方便编写Repository仓储模式的DAO层代码
5. 自动实现Repository interface的CRUD常用操作
6. 自动进行POJO和MongoDB文档数据的映射转换, Spring’s Conversion Service
7. 可以自定义扩展方法
8. MongoTemplate helper class 提升MongoDB开发效率
9. Low-level mapping using MongoReader/MongoWriter abstractions
10. Java based Query, Criteria, and Update DSLs
11. Log4j log appender
12. GeoSpatial集成
13. Map-Reduce 集成
14. JMX administration and monitoring
15. CDI support for repositories
16. GridFS 支持
Repository仓储层代码
public interface BlogRepository extends MongoRepository <Blog, objectId> {
public Blog findById(objectId id);
public void delete (objectId id);
public List<Blog> findAll();
}
Repository仓储层代码,实际大大的简化了整个数据库编程,但是底层基础还是需要大家去使用,作为应用开发人员,使用接口越方便越简单效率越高,但是底层实现需要我们花时间去研究学习。
五、本节课高级面试题
高级面试题
1. Spring Data for MongoDB映射机制
2. 官方驱动是什么
3. MongoDB存储什么数据?NoSQL,面向文档 JSON
4. MongoDB优缺点
5. MongoDB几大存储引擎
6. 数据复制的过程
7. 索引类型
8. 性能优化
9. 性能监控
10. GEO索引算法