MongoDB

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}})

详细代码

https://gitee.com/zxy06291/mangodb

相关推荐
凌虚11 小时前
面向 MySQL 用户的 PostgreSQL 快速上手指南
数据库·后端·架构
五阿哥永琪11 小时前
MySQL中操作json的函数!
数据库·mysql·json
来者皆善11 小时前
了解Mysql优化吗?如何优化索引?
数据库·mysql
赤壁小虾14 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库
MC皮蛋侠客14 小时前
SQLAlchemy 系列(七):高级建模与高效写入——批量 DML、方言与扩展
数据库·python
奈斯先生Vector15 小时前
把 Midjourney 二次编辑做成生产系统:customId 能力令牌、Action Graph 与 WebUI 精修工作台
数据库·人工智能·架构·aigc·音视频·midjourney
Lethehong15 小时前
双擎并驱·全链路并行:KFS让TB级异构增量同步秒级到达
数据库
MC皮蛋侠客15 小时前
SQLAlchemy 系列(八):AsyncIO、并发与 Web 生命周期——让每个并发任务持有自己的 Session
数据库·python
一水16 小时前
Redis实战:一个AI工作流系统里的五个应用场景,从传参到限流的完整链路
数据库·redis·wpf
枫叶v.17 小时前
Prompt Injection 防不住怎么办?从 Source-Sink 模型设计 Agent 安全边界
数据库·安全·prompt