MongoDB学习整理

基础认识:mongoDB是文档型数据库

在mongoDB中,数据库是由一个个集合组成的,每个集合又包含多个文档(文档在使用BSON的格式来组织和存储数据)

基础操作

1. 连接MongoDB

1
mongo

如果 MongoDB 在其他主机或端口上运行,可以指定地址,例如:

1
mongo --host your_host --port your_port

2. 显示数据库列表

1
show databases

3. 创建/切换数据库

使用 use 命令切换到某个数据库,如果该数据库不存在会自动创建:

1
use myDatabase

4. 清屏

1
cls

5. 退出

1
exit

CRUD

创建操作

创建或插入操作用于将新文档添加到集合中。如果集合当前不存在,插入操作会创建集合。

MongoDB 提供以下方法将文档插入到集合中:

  • db.collection.insertOne()
  • db.collection.insertMany()

1

读取操作

读取操作用于从集合中检索文档,即查询集合中的文档。MongoDB 提供以下方法来从集合中读取文档:

  • db.collection.find()

2

读取操作

读取操作用于从集合中检索文档,即查询集合中的文档。

  • db.collection.find()

删除操作

  • db.collection.deleteOne()
  • db.collection.deleteMany()

常用函数汇总

函数 用途 example
limit() 限制返回的数据数量 db.user.find().limit(1)
sort() 排序查询结果(1:升序;-1:降序) db.user.finnd().sort({level:1}) #按照level的属性大小进行排序
skip() 跳过一些查询结果 db.user.find().skip(1)
find({field:value},{name:1,email:1}) 条件查询 db.user.fing({level:3},{name:1,email:1}) #查询level为3的用户,并返回他们的name和email两个字段,1为返回,0为不返回 (_id字段自动返回)
  • $gt :大于
  • $gte : 大于等于
  • $lt : 小于
  • $eq :等于
  • $in :在数组中
  • $nin : 不在数组中
  • $exist : 查询某个字段是否存在
  • $and : [{条件1},{条件2}]
  • $not : {条件}
  • $regex: /expression/,$options:’i’ : 正则表达式

在Springboot中使用MongoDB

1. 添加 MongoDB Java 驱动依赖

使用 Maven 管理依赖时,在 pom.xml 文件中添加 MongoDB Java 驱动依赖:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2. 在 application.yml 中建立连接

1
2
3
data:
mongodb:
uri: mongodb://localhost:27017/yourDatabase

或在 application.properties 中:

1
spring.data.mongodb.uri=mongodb://localhost:27017/yourDatabase

3. 创建 MongoDB 实体类

为 MongoDB 集合创建一个实体类。使用 @Document 注解将类映射到 MongoDB 集合。

1
2
3
4
5
6
7
8
9
10
11
12
13
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "yourCollectionName")
public class YourEntity {

@Id
private String id;
private String name;
private int age;

// 省略构造函数、Getter 和 Setter
}