MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具备丰富的功能)之间架起一座桥梁,它集二者的优点于一身。html
MongoDB支持的数据结构很是松散,是相似json的bson格式,所以能够存储比较复杂的数据类型,也由于他的存储格式也使得它所存储的数据在Nodejs程序应用中使用很是流畅。redis
既然称为NoSQL数据库,Mongo的查询语言很是强大,其语法有点相似于面向对象的查询语言,几乎能够实现相似关系数据库单表查询的绝大部分功能,并且还支持对数据创建索引。spring
可是,MongoDB也不是万能的,同MySQL等关系型数据库相比,它们在针对不一样的数据类型和事务要求上都存在本身独特的优点。在数据存储的选择中,坚持多样化原则,选择更好更经济的方式,而不是自上而下的统一化。mongodb
较常见的,咱们能够直接用MongoDB来存储键值对类型的数据,如:验证码、Session等;因为MongoDB的横向扩展能力,也能够用来存储数据规模会在将来变的很是巨大的数据,如:日志、评论等;因为MongoDB存储数据的弱类型,也能够用来存储一些多变json数据,如:与外系统交互时常常变化的JSON报文。而对于一些对数据有复杂的高事务性要求的操做,如:帐户交易等就不适合使用MongoDB来存储。数据库
MongoDB官网json
在Spring Boot中,对如此受欢迎的MongoDB,一样提供了自配置功能。数据结构
Spring Boot中能够经过在pom.xml
中加入spring-boot-starter-data-mongodb
引入对mongodb的访问支持依赖。它的实现依赖spring-data-mongodb
。是的,您没有看错,又是spring-data
的子项目,以前介绍过spring-data-jpa
、spring-data-redis
,对于mongodb的访问,spring-data
也提供了强大的支持,下面就开始动手试试吧。分布式
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
源码来源spring-boot