这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
本模块主要用于记录我在学习MongoDB数据库时的一些学习笔记。
一.概述
1.应用场景
高并发、海量数据高效存储与访问、数据库高拓展性和高可用性,例如:
- 社交场景,存储用户信息,以及用户发表的朋友圈信息
- 游戏场景,储存游戏内的用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便高效查询、储存和访问
- 物流场景,存储不断变更的物流信息,以内嵌数组的形式,一次查询就能够将订单的所有的变更读取出来
- 视频直播,存储用户点赞、弹幕等
2.简介
- 文档型数据库
- 基于分布式文件储存的数据库,提供可拓展高性能数据库存储解决方案
- 介于关系和非关系型数据库之间:数据结构松散,类似json的bson格式,可存储比较复杂的数据类型
- 特点
- 面向集合存储,易存储对象类型的数据:java对象之间转为文档存储
- 支持查询以及动态查询
- 支持多种语言
- 文件存储格式为BSON:十分灵活,文档的值种类不固定,可动态变化
- 支持复制和故障恢复和分片
- 支持事务
- 索引 聚合 关联
3.核心概念
- 库
DataBase
- 用来隔离不同应用数据
- 一个库对应dbpath指定目录里面的一个文件
- 集合
Collection
- MongoDB文档组,类似于表
- 每个集合没有固定的结构
- 文档
Document
- 文档集合中一条条记录,是一组键值对(即BSON)
- 文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型
二.整合Springboot
1.引入依赖
<!--MongoDB-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.配置
#MongoDB
spring.data.mongodb.uri=mongodb://localhost:27017/text