文章目录
MongoDB是什么
MondoDB是最流行的文档型数据库
MongoDB一些基本概念
- databases
数据库,类似于MySQL的数据库 - collections
集合,类似于MySQL的表,一个databases可以创建多个collections - documents
文档,类似于MySQL的行数据,一个collections可以创建多个documents
MongoDB文档常见的数据类型
- 数值
- int
- long
- double
- decimal
- 布尔
- bool
- 字符串
- string
- 日期
- date
- 时间戳
- timestamp
- 数组
- array
- 二进制数据
- binData
- 文档标识
- objectId
- 嵌套文档
- object
MondoDB的下载、安装、运行
- Docker拉取MongoDB镜像
docker pull mongodb/mongodb-community-server:latest
- 启动mongoDB容器
docker run --name mongodb -p 27017:27017 -d mongodb/mongodb-community-server:latest
其中 -p 是将容器端口映射到主机端口,而27017是mongoDB客户端与MongoDB服务端的默认通信端口
- 校验MongoDB容器是否启动成功
docker ps
出现以下结果,则说明MongoDB容器启动完成了
Studio 3T(MongoDB客户端)的下载、安装、运行
-
进入Studio 3T官网
Studio 3T官网 -
下载 Studio 3T
-
解压后双击安装
-
完成以下四个步骤
-
连接MongoDB
Studio 3T操作MongoDB
-
创建数据库
- 选择连接
- 点击Add database
- 输入数据库名
- 选择连接
-
创建集合
-
选择数据库
-
点击Add Collection
-
输入集合名
-
-
打开shell操作文档数据
-
添加一条数据
命令:db.{collection}.insertOne(document, { writeConcern? }?)
例子:db.hello_c.insertOne({name:"小林",age:18,gender:"男"})
- 添加多条数据
命令:db.{collection}.insertMany(documents, { writeConcern?, ordered? }?)
例子:db.hello_c.insertMany([{name:"小北",age:19,gender:"男"},{name:"小红",age:18,gender:"女"},{name:"小七",age:17,gender:"男"}])
- 修改数据
命令:db.{collection}.updateOne(filter, update, options?)
例子:db.hello_c.updateOne({name:"小林"},{$set:{name:"小天",age:20}})
- 删除数据
命令:db.{collection}.deleteMany(filter, { writeConcern?, collation? }? )
例子:db.hello_c.deleteMany({gender:"男"})
- 查询数据
命令:db.{collection}.find(criteria?, projection?)
例子:db.hello_c.find({name:"小林"});
Spring Boot整合MongoDB
- 初始化一个Spring Boot项目
我这里Spring Boot版本是2.3.6.RELEASE
- 引入maven依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
- 配置mongoDB连接信息
spring:
data:
mongodb:
host: your ip
port: 27017
database: hello_db
- 编写User集合类
@Data
public class User {
private String id;
private String username;
private int age;
private String gender;
}
- 在启动测试类编写测试代码
@Autowired
private MongoTemplate mongoTemplate;
@Test
void contextLoads() {
// 添加一条数据
User u1 = new User();
u1.setUsername("小北");
u1.setAge(18);
u1.setGender("男");
mongoTemplate.insert(u1, "user");
System.out.println("添加一条数据成功");
// 添加多条数据
User u2 = new User();
u2.setUsername("小黄");
u2.setAge(19);
u2.setGender("女");
User u3 = new User();
u3.setUsername("小小倩");
u3.setAge(20);
u3.setGender("女");
List<User> users = new ArrayList<>();
users.add(u2);
users.add(u3);
mongoTemplate.insert(users, "user");
System.out.println("添加多条数据成功");
// 查询数据
List<User> oldUsers = mongoTemplate.find(Query.query(Criteria.where("username").is("小小倩")), User.class, "user");
System.out.println("查询数据成功:" + oldUsers);
// 修改数据
AggregationUpdate update = AggregationUpdate.update().set("age").toValue(19).set("gender").toValue("女");
mongoTemplate.updateFirst(Query.query(Criteria.where("username").is("小北")), update, "user");
System.out.println("修改数据成功");
// 删除数据
mongoTemplate.remove(Query.query(Criteria.where("username").is("小黄")), "user");
System.out.println("删除数据成功");
}
- 测试结果
以上就是MongoDB快速入门教程,下一篇章我们将深入学习MongoDB,敬请期待吧!