简介
MongoDB是一种面向文档的数据库管理系统,他是一个介于关系型数据库和非关系型数据库之间的产品,MongoDB功能丰富,它是一种类似JSON的BSON数据格式,既可以存储简单的数据格式,也可以存储复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,并且还支持对数据建立索引。总体来说,MongoDB是一款应用相当广泛的NoSQL数据库。
1.MongoDB安装
sudo apt-get install mongodb
假如安装有困难的话,可以登陆下面这个网址,这篇文章是我写的专门解决ubunto安装困难的情况
解决问题的地址
1.1检验安装是否成功
2.使用MongoDB
2.1进入shell命令模式
在终端输入mongo
2.2show dbs显示数据库列表
2.3创建collection
2.4插入数据
插入数据有两种方式:insert和save
db.student.insert({_id:1, sname: ‘zhangsan’, sage: 20}) #_id可选
db.student.save({_id:1, sname: ‘zhangsan’, sage: 22}) #_id可选
这两种方式,其插入的数据中_id字段均可不写,会自动生成一个唯一的_id来标识本条数据。而insert和save不同之处在于:在手动插入_id字段时,如果_id已经存在,insert不做操作,save做更新操作;如果不加_id字段,两者作用相同都是插入数据。
所以啊,明怀我还是建议大家在写mongDB的插入的时候还是用save吧,它会自动去更新
当然了,你如果觉得想要看起来更好看的话,可以添加pretty()
2.5一次性插入多条数据
将这些数据插入到student库当中去
为了好看,还可以试着去使用我之前讲的pretty()方法
2.6修改数据
db.collection.update(criteria, objNew, upsert, multi )
criteria: update的查询条件,类似sql update查询内where后面的
objNew : update的对象和一些更新的操作符(如$set)等,也可以理解为sql update查询内set后面的。
upsert : 如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi: mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。默认false,只修改匹配到的第一条数据。
其中criteria和objNew是必选参数,upsert和multi可选参数
2.7删除数据
db.student.remove()
2.8删除集合
db.collection.drop()
退出shell命令模式
在终端输入exit或者在键盘上按Ctrl+C
3.Spring Boot整合MongDB
3.1创建Spring boot并且配置依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</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>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.2配置MongDB
在application.properties中配置MogoDB的连接信息
首先查看一下自己的数据库
因为使用的时候是分开的,一个库用来信息的连接,一个是用来数据的引入
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=config
spring.data.mongodb.host=192.168.248.128
spring.data.mongodb.port=27017
3.3创建实体类
package com.example.dao;
import lombok.Data;
import org.springframework.context.annotation.Configuration;
@Configuration
@Data
public class Book {
private Integer id;
private String name;
private String author;
}
这里我引入了lombok依赖,就可以不用写get和setter了,只需要加上注解就可以进行了
3.4创建BookDao接口
package com.example.dao;
import java.util.List;
public interface BookDao {
List<Book> findByAuthorContains(String author);
Book findByNameEquals(String name);
}
3.5创建Controller
package com.example.controller;
import com.example.dao.Book;
import com.example.dao.BookDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
public class BookController {
@Autowired
BookDao bookDao;
@GetMapping("/test1")
public void test1(){
List<Book> books=new ArrayList<>();
Book b1=new Book();
b1.setName("露露");
b1.setAuthor("明怀");
b1.setId(1);
books.add(b1);
Book b2=new Book();
b2.setId(2);
b2.setName("小明");
b2.setAuthor("怀民");
books.add(b2);
bookDao.insert(books);
List<Book> books1=bookDao.findByAuthorContains("明怀");
System.out.println(books1);
Book book=bookDao.findByNameEquals("露露");
System.out.println(book);
}
}