MongoDB

2023-09-15 16:01:10

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 

更多推荐

Vim的基础操作

前言本文将向您介绍关于vim的基础操作基础操作在讲配置之前,我们可以新建一个文件.vimrc,并用vim打开在里面输入setnu先给界面加上行数,然后shift+;输入wq退出默认打开:命令模式本文将下来会主要讲这几种模式,当然vim还有其他一些特殊模式,但是比较少用在命令模式中:h:向左移动j:向下移动k:向上移动L

自学 Java 需要具备哪些基本条件或技能?

新手初学者在自己学习Java时,需要注意两个方面,一个是学习方面,一个是知识点方面!学习方面:1、做学习计划并保持自律在我们学习Java的过程中,尽量减少干扰,把自己的全部注意力集中在Java上。无论你注意力的持续时间是多久,都应该将全部精力放在Java上。2、通过编码来学习很多新手在学习Java时都会经历一个阶段,那

vue中通过JavaScript实现web端鼠标横向滑动&触控板滑动效果-demo

JavaScript实现web端鼠标横向滑动&触控板滑动效果支持鼠标拖动滑动&触控板滑动效果web端实现滑动,就是对鼠标按下、鼠标松开、鼠标移动事件进行监听效果图代码结构代码<template><divclass="swiper"><divclass="container"ref="container"><!--在这里

计算机视觉与深度学习-全连接神经网络-训练过程-批归一化- [北邮鲁鹏]

文章目录思想批归一化操作批归一化与梯度消失经过BN处理算法实现思想直接对神经元的输出进行批归一化批归一化:对输出值进行归一化,将归一化结果平移缩放作为输出。批归一化操作小批量梯度下降算法回顾:每次迭代时会读入一批数据,比如32个样本;经过当前神经元后会有32个输出值y1,…y32。批归一化操作:对这32个输出进行减均值

Java实现Modbus Tcp协议读写模拟工具数据

标题前言一、读写模拟工具中数据(1)定义Controller层(2)定义Service层实现二、调试(1)读数据(2)向寄存器写单个数据(3)向寄存器写多个数据前言参考文章:https://www.cnblogs.com/ioufev/p/10831289.html该文中谈及常见的几种读取设备数据实现,说到modbus

【CNN-FPGA开源项目解析】01--floatMult16模块

文章目录(基础)半精度浮点数的表示和乘运算16位半精度浮点数浮点数的乘运算floatMult16完整代码floatMult16代码逐步解析符号位sign判断指数exponent计算尾数fraction计算尾数fraction的标准化和舍位整合为最后的16位浮点数结果[sign,exponent,fraction]其他变

MySQL数据库

1、数据库的基本概念1.1数据·描述事物的符号记录·包括数字、文字、图形、图像、声音、档案记录等·以“记录”形式按统一的格式进行存储1.2表·将不同的记录组织在一起的·用来存储具体数据1.3数据库​​·表的集合,是存储数据的仓库·以一定的组织方式存储的相互有关的数据集合1.4数据库管理系统·是实现对数据库资源有效组织、

C++面试/笔试准备,资料汇总

文章目录后端太卷,建议往嵌入式,qt,测试,音视频,C++一些细分领域投简历。有任何疑问评论区聊,我看到了回复C++面试/笔试准备,资料汇总自我介绍项目实习尽可能有1.编程语言:一.熟悉C++语言,熟悉std::string的底层实现。string的底层实现(写时复制技术)1、引用&指针野指针2、C++中的继承,多态,

浅谈低压电力电容器常见故障分析及预防措施

安科瑞华楠【摘要】为了可以有效实现提高电力电容器故障解决效率,就需要针对其故障诊断技术展开研究,而状态量监测作为提高故障诊断技术效率与质量重要因素,其对电力电容器故障诊断工作而言,有着重要影响意义。基于此,本文首先将会针对传统电力电容器故障诊断工作展开分析,而后针对基于状态量监测电力电容器故障诊断技术展开研究,进而制定

深入了解Vue.js框架:构建现代化的用户界面

目录一.Vue前言介绍二.Vue.js框架的核心功能与特性三.MVVM的介绍四.Vue的生命周期五.库与框架的区别1.库(Library):2.框架(Framework):六.Vue常用指令演示1.v-model2.v-on:click(简写:@click)本篇博客将带你深入了解Vue.js框架的核心概念和强大功能互关

ClickHouse进阶(十七):clickhouse优化-写出查询优化

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容!🏡个人主页:含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,ApacheDoris,Kerberos安全认证-CSDN博客📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情!👍点赞:赞同优秀创作,你的点赞是对我创作最大的认可

热文推荐