1.安装
docker run --restart=always -d --name mongo -v /home/206/mongodb/data:/data/db -p 27017:27017 mongo:4.0.6
2.建立数据库
3.MongoDB 使用
基于Spring Boot使用
3.1 引用依赖包
<!-- Spring Data MongoDB -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
3.2 配置文件配置mongodb资料
# MongoDB连接信息
spring.data.mongodb.host=192.168.14.45
spring.data.mongodb.port=27017
spring.data.mongodb.database=mall
spring.data.mongodb.auto-index-creation=true
3.3 准备对象Person
@Document(collection = "person") // 指定集合名称,就是类似mysql的表,如果不指定就以类名称作为集合名称
@Data
public class Person {
@Id // 文档id, 很重要,类似mysql 表的主键
private Long id;
private String name;
private Integer age;
/**
* 创建一个10秒之后文档自动删除的索引 结合 spring.data.mongodb.auto-index-creation = true 一起使用 创建一个10秒之后文档自动删除, 类似 redis ttl注意:这个字段必须是date类型或者是一个包含date类型值的数组字段,一般我们使用date类型;
*/
@Indexed(expireAfterSeconds=10)
private LocalDateTime createTime;
}
4.Person类
id name age
没有id,会自动生成唯一id
加上@id
文档的id,类似于mysql的主键
5.测试类
6.给person加一个girls
直接在类中加一个字段
7.插入 多条插入
8.第一种:加注解改名字@Document(collection="新改的名字")
第二种:
9.save
直接调用save即可,代替insert,单条插入修改
10.更新,在测试类中添加
update比save性能更高
save是全部,update是针对性更新
updateFirst 只更新一行
query
gt 是大于
age>10的name改成渣男
11.删除
findAndRemove
删除并返回出来
allAndRemove
符合条件拿出来删掉
12.查询
findById 精确查找某一个
findOne 返回一个
findAll 返回list
联合查询 andOperator
orOperator
in
gt大于 lt小于
gte大于等于 lte小于等于
13.排序
根据girls的数量排序
取总数 count
14.根据正则表达式regex
15.创建索引
descending 降序 -1
ascending 升序 1
16.查询文档
db.getCollection("person").find({ name: /^赵/ ,name: /蚝$/})
db.getCollection("person").find({ name: /^生/,age:{$lte:18}})
详细代码