MongoDB 介绍及基本操作、SpringBoot 整合 MongoDB
+ MongoDB 介绍及基本操作
- MongoDB 介绍:
- MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
- 安装使用MongoDB:
- 下载:
https://downloads.mongodb.com/windows/mongodb-windows-x86_64-enterprise-5.0.9.zip - 下载完成后解压,在 bin 同级别目录下创建 data/db 目录,在 bin 目录下启动 mongodb 数据库,并设置数据存储在 data/db 目录下:
- 使用 idea 连接 MongoDB:
- 展示所有的数据库信息:
- 通过命令创建数据库和集合:
- 等待执行完成:
- 添加数据(文档):
db.book.insertOne({"name": "springboot从入门到精通"});
db.book.insertOne({"name": "springcloud从入门到精通",
"description": "这是一本springcloud从入门到精通的书"});
- 查询文档:
-- 无条件查询文档
db.getCollection("book").find({});
-- 简写形式为:db.book.find();
- 带条件查询文档:
-
其他带查询条件的方法如下:
-
删除文档:
-
修改文档:
+ SpringBoot 整合 MongoDB:
- pom.xml导入相关依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
- yml配置:
spring:
data:
mongodb:
uri: mongodb://localhost/mongo_test
- 测试类示例代码:
import com.example.springboot_mongodb.entity.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.core.AutoConfigureCache;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import java.util.List;
@SpringBootTest
class SpringbootMongodbApplicationTests {
@Autowired
private MongoTemplate mongoTemplate;
@Test
void save() {
Book book = new Book("2", "java", "从入门到精通", 35.00F);
mongoTemplate.save(book);
}
@Test
void find(){
List<Book> books = mongoTemplate.findAll(Book.class);
System.out.println(books);
//执行结果为:[Book(id=62dcde20428b155b3684a533, name=springboot2从入门到精通, description=null, price=null), Book(id=2, name=java, description=从入门到精通, price=35.0)]
}
}
- save() 方法执行结果为: