MongoDB学习笔记(一) | 青训营笔记

38 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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