MongoDB介绍
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
MongoDB的特点
1、MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序。
你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
2、Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3、MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
4、Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
5、Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
6、Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
7、GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
8、MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
9、MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
10MongoDB安装简单。
下面来说说在spring boot中整合MongoDB的例子
创建项目
创建项目时,添加web以及spring data mongodb、spring security依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
MongoDB的配置
spring.data.mongodb.authentication-database=admin #mongo默认的一个admin库
spring.data.mongodb.database=zhouym #随便起一个name
spring.data.mongodb.host=10.0.0.13 #mongodb的ip
spring.data.mongodb.port=27017 #mongodb的默认端口
spring.data.mongodb.username=zhouym #mongodb的用户名
spring.data.mongodb.password=123 #mongodb的密码
MongoDB的使用
创建一个book类
package com.zhouym.mongodb;
/**
* 〈〉
*
* @author zhouym
* @create 2019/8/28
* @since 1.0.0
*/
public class Book {
private Integer id;
private String name;
private<