当前位置: 首页 > news >正文

springBoot+mongoDB项目中,使用MongoFactory、MongoTemplate分页条件查询,增删查改

MongoDB:CRUD

    • 添加
    • 删除
    • 修改
    • 条件查询
    • 分页条件查询

只展示实现类代码

添加

@Autowiredprivate MongoTemplate mongoTemplate;@Autowiredprivate MongoFactory mongoFactory;@Overridepublic boolean saveEntity(entityForm form) {try {实体类 en = new 实体类();en.setName(form.getName);// ... 实体类 save = mongoTemplate.save(en);return Objects.nonNull(save.get_id());} catch (Exception e) {log.error(e.getMessage());}}

底下的就给关键代码了,w太懒了。。。

删除

            Query query = new Query(Criteria.where("条件字段名称例如_id").is(id));//id是传进来的条件DeleteResult remove = mongoTemplate.remove(query, 实体类.class);return remove.getDeletedCount() > 0; //返回删除条数

修改


Query query = new Query();// 添加修改表条件为id=id
query.addCriteria(Criteria.where("主键id字段名").is(id));Update update = new Update(); // 设置需要修改的字段update.set("字段名",新值);// 等等... //返回修改结果
UpdateResult updateResult = mongoTemplate.updateFirst(query, update, 实体类.class);
//updateResult.getModifiedCount()可以获得成功修改条数

条件查询

@Overridepublic List<实体类> getHbzbGudongList(条件实体类 search) {// 目前只有一个关键字字段(keywords) 可以添加多个Query query = new Query();if (Objects.nonNull(search.getKeywords())) {Pattern pattern = Pattern.compile("^.*" + search.getKeywords() + ".*$");query.addCriteria( // orOperator == 或者。里面俩条件关系是or,还有andOperator顾名思义等于数据库中的and new Criteria().orOperator( Criteria.where(条件字段名1).is(pattern),Criteria.where(条件字段名2).is(pattern)));}List<实体类> ls= mongoTemplate.find(query, 实体类.class);return ls;}

这玩意百度了好久用什么聚合查询 老是会报错什么的,导包也导不进,只能用底下发方法实现了

分页条件查询

private Integer type;private String keywords;-----------------上面是orderQuery 类的内容,可以自定义import org.springframework.*; //几乎包都在这下面,我懒得一个个复制出来了,别用*/*** 分页条件查询   //页码也可以不传,只要让orderQuery类继承一个基础分页对象就行* @param pageNum 页码* @param pageSize 条数* @param order 查询条件* @return 返回分页列表*/@Overridepublic Page<实体类> getOrderPage(Integer pageNum, Integer pageSize, orderQuery order) {Pageable pageable = PageRequest.of(pageNum - 1, pageSize);MongoTemplate mongoTemplate = mongoFactory.mongoTemplate("数据库名");Query query = new Query();// 判断条件类型if (Objects.nonNull(order.getType()) && Objects.nonNull(order.getKeywords())) {Integer type = order.getType();switch (type) { // 查询类型:{0:订单号,1:商家名称,2:商品名称}case 0 ->query.addCriteria("字段名1").is(order.getKeywords()));case 1 ->query.addCriteria("字段名2").is(order.getKeywords()));case 2 ->query.addCriteria("字段名3").is(order.getKeywords()));}}long total = mongoTemplate.count(query, 实体类.class);List<实体类> orderPageVOS = mongoTemplate.find(query.with(pageable), 实体类.class);return new PageImpl<>(orderPageVOS, pageable, total);}

相关文章:

springBoot+mongoDB项目中,使用MongoFactory、MongoTemplate分页条件查询,增删查改

MongoDB:CRUD 添加删除修改条件查询分页条件查询 只展示实现类代码 添加 Autowiredprivate MongoTemplate mongoTemplate;Autowiredprivate MongoFactory mongoFactory;Overridepublic boolean saveEntity(entityForm form) {try {实体类 en new 实体类();en.setName(form.ge…...

Leetcode236 二叉树两节点的最近公共祖先

问题描述&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个…...

Web的UI自动化基础知识

目录 1 Web自动化入门基础1.1 自动化知识以及工具1.2 主流web自动化测试工具1.3 入门案例 2 使用工具的API2.1 元素定位2.1.1 id选择器2.1.2 name2.1.3 class_name选择器2.1.4 tag_name选择器2.1.5 link_text选择器2.1.6 partial_link_text选择器2.1.7 xpath选择器2.1.8 CSS选择…...

【我是产品经理_注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …...

Java智慧工地源码 5G智慧工地系统源码 使用SAAS部署 三维可视化管理,与一线生产过程相融合,集成数据后台,统一前端入口,呈现多方项目信息;

Java智慧工地源码 5G智慧工地系统源码 使用SAAS部署 三维可视化管理&#xff0c;与一线生产过程相融合&#xff0c;集成数据后台&#xff0c;统一前端入口&#xff0c;呈现多方项目信息; 智慧工地是指运用信息化手段&#xff0c;通过三维设计平台对工程项目进行精确设计和施工…...

lock_wait_timeout

lock_wait_timeout 是 MySQL 中的一个重要参数&#xff0c;它用于控制当一个 MySQL 会话在等待锁时的等待时间。以下是关于 lock_wait_timeout 的详细解释&#xff1a; 定义与功能 定义&#xff1a;lock_wait_timeout 是一个会话或线程级别的参数&#xff0c;用于指定 MySQL …...

【可控图像生成系列论文(二)】MimicBrush 港大、阿里、蚂蚁集团合作论文解读2

【可控图像生成系列论文&#xff08;一&#xff09;】简要介绍了论文的整体流程和方法&#xff0c;本文则将就整体方法、模型结构、训练数据和纹理迁移进行详细介绍。 1.整体方法 MimicBrush 的整体框架如下图所示。为了实现模仿编辑&#xff0c;作者设计了一种具有双扩散模型…...

Linux时间子系统6:NTP原理和Linux NTP校时机制

一、前言 上篇介绍了时间同步的基本概念和常见的时间同步协议NTP、PTP&#xff0c;本篇将详细介绍NTP的原理以及NTP在Linux上如何实现校时。 二、NTP原理介绍 1. 什么是NTP 网络时间协议&#xff08;英语&#xff1a;Network Time Protocol&#xff0c;缩写&#xff1a;NTP&a…...

边缘微型AI的宿主?—— RISC-V芯片

一、RISC-V技术 RISC-V&#xff08;发音为 "risk-five"&#xff09;是一种基于精简指令集计算&#xff08;RISC&#xff09;原则的开放源代码指令集架构&#xff08;ISA&#xff09;。它由加州大学伯克利分校在2010年首次发布&#xff0c;并迅速获得了全球学术界和工…...

MySQL—navicat创建数据库表

-- 创建学生表&#xff08;列&#xff0c;字段&#xff09; 使用SQL创建 -- 学号int 登录密码varchar(20) 姓名&#xff0c;性别varchar(2)&#xff0c;出生日期(datetime)&#xff0c;家庭住址&#xff0c;email -- 注意点&#xff1a;使用英文括号()&#xff0c;表的名称 …...

html做一个画柱形图的软件

你可以使用 HTML、CSS 和 JavaScript 创建一个简单的柱形图绘制软件。为了方便起见&#xff0c;我们可以使用一个流行的 JavaScript 图表库&#xff0c;比如 Chart.js&#xff0c;它能够简化创建和操作图表的过程。 以下是一个完整的示例&#xff0c;展示如何使用 HTML 和 Cha…...

Pyshark——安装、解析pcap文件

1、简介 PyShark是一个用于网络数据包捕获和分析的Python库&#xff0c;基于著名的网络协议分析工具Wireshark和其背后的libpcap/tshark库。它提供了一种便捷的方式来处理网络流量&#xff0c;适用于需要进行网络监控、调试和研究的场景。以下是PyShark的一些关键特性和使用方…...

java中的Random

Random 是 Java 中的一个内置类&#xff0c;它位于 java.util 包中&#xff0c;主要用于生成伪随机数。伪随机数是指通过一定算法生成的、看似随机的数&#xff0c;但实际上这些数是由确定的算法生成的&#xff0c;因此不是真正的随机数。然而&#xff0c;由于这些数在统计上具…...

PyMuPDF 操作手册 - 01 从PDF中提取文本

文章目录 一、打开文件二、从 PDF 中提取文本2.1 文本基础操作2.2 文本进阶操作2.2.1 从任何文档中提取文本2.2.2 如何将文本提取为 Markdown2.2.3 如何从页面中提取键值对2.2.4 如何从矩形中提取文本2.2.5 如何以自然阅读顺序提取文本2.2.6 如何从文档中提取表格内容2.2.6.1 提…...

ResNet——Deep Residual Learning for Image Recognition(论文阅读)

论文名&#xff1a;Deep Residual Learning for Image Recognition 论文作者&#xff1a;Kaiming He et.al. 期刊/会议名&#xff1a;CVPR 2016 发表时间&#xff1a;2015-10 ​论文地址&#xff1a;https://arxiv.org/pdf/1512.03385 1.什么是ResNet ResNet是一种残差网络&a…...

java基础·小白入门(五)

目录 内部类与Lambda表达式内部类Lambda表达式 多线程 内部类与Lambda表达式 内部类 在一个类中定义另外一个类&#xff0c;这个类就叫做内部类或内置类 (inner class) 。在main中直接访问内部类时&#xff0c;必须在内部类名前冠以其所属外部类的名字才能使用&#xff1b;在…...

微观时空结构和虚数单位的关系

回顾虚数单位的定义&#xff0c; 其中我们把称为周期&#xff08;的绝大部分&#xff09;&#xff0c;称为微分&#xff0c;0称为原点或者起点&#xff08;意味着新周期的开始&#xff09;&#xff0c;由此我们用序数的概念反过来构建了基数的概念。 周期和单位显然具有倍数关…...

go-zero使用goctl生成mongodb的操作使用方法

目录 MongoDB简介 MongoDB的优势 对比mysql的操作 goctl的mongodb代码生成 如何使用 go-zero中mogodb使用 mongodb官方驱动使用 model模型的方式使用 其他资源 MongoDB简介 mongodb是一种高性能、开源、文档型的nosql数据库&#xff0c;被广泛应用于web应用、大数据以…...

服务器新硬盘分区、格式化和挂载

文章目录 参考文献查看了一下起点现状分区(base) ~ sudo parted /dev/sdcmklabel gpt&#xff08;设置分区类型&#xff09;增加分区 格式化需要先退出quit&#xff08;可以&#xff09;(base) / sudo mkfs.xfs /dev/sdc/sdc1&#xff08;失败&#xff09;sudo mkfs.xfs /dev/s…...

Openldap集成Kerberos

文章目录 一、背景二、Openldap集成Kerberos2.1kerberos服务器中绑定Ldap服务器2.1.1创建LDAP管理员用户2.1.2添加principal2.1.3生成keytab文件2.1.4赋予keytab文件权限2.1.5验证keytab文件2.1.6增加KRB5_KTNAME配置 2.2Ldap服务器中绑定kerberos服务器2.2.1生成LDAP数据库Roo…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...