当前位置: 首页 > 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…...

(创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据

目录 一、主要内容&#xff1a; 二、运行效果&#xff1a; 三、VMD-BiLSTM负荷预测理论&#xff1a; 四、代码数据下载&#xff1a; 一、主要内容&#xff1a; 本代码结合变分模态分解( Variational Mode Decomposition&#xff0c;VMD) 和卷积神经网络(Convolutional neu…...

机器 reboot 后 kubelet 目录凭空消失的灾难恢复

文章目录 [toc]事故背景报错内容 修复过程停止 kubelet 服务备份 kubelet.config重新生成 kubelet.config重新生成 kubelet 配置文件对比 kubeadm-flags.env 事故背景 因为一些情况&#xff0c;需要 reboot 服务器&#xff0c;结果 reboot 机器后&#xff0c;kubeadm init 节点…...

Pytorch构建vgg16模型

VGG-16 1. 导入工具包 import torch.optim as optim import torch import torch.nn as nn import torch.utils.data import torchvision.transforms as transforms import torchvision.datasets as datasets from torch.utils.data import DataLoader import torch.optim.lr_…...

分支结构相关

1.if 语句 结构&#xff1a; if 条件语句&#xff1a; 代码块 小练习&#xff1a; 使用random.randint()函数随机生成一个1~100之间的整数&#xff0c;判断是否是偶数 import random n random.randint(1,100) print(n) if n % 2 0:print(str(n) "是偶数") 2.else语…...

flutter开发实战-RichText富文本居中对齐

flutter开发实战-RichText富文本居中对齐 在开发过程中&#xff0c;经常会使用到RichText&#xff0c;当使用RichText时候&#xff0c;不同文本字体大小默认没有居中对齐。这里记录一下设置过程。 一、使用RichText 我这里使用RichText设置不同字体大小的文本 Container(de…...

智慧消防新篇章:可视化数据分析平台引领未来

一、什么是智慧消防可视化数据分析平台&#xff1f; 智慧消防可视化数据分析平台&#xff0c;运用大数据、云计算、物联网等先进技术&#xff0c;将消防信息以直观、易懂的图形化方式展示出来。它不仅能够实时监控消防设备的运行状态&#xff0c;还能对火灾风险进行预测和评估…...

u8g2 使用IIC驱动uc1617 lcd有时候某些像素显示不正确

折腾了很久&#xff0c;本来lcd是挂载到已经存在的iic总线上的&#xff0c;总线原来是工作正常的&#xff0c;挂载之后lcd也能显示&#xff0c;但是有时候显示不正确&#xff0c;有时候全白的时候有黑色的杂点。 解决方案&#xff1a; 1.最开始以为是IIC总线速度快&#xff0…...

使用opencv合并两个图像

本节的目的 linear blending&#xff08;线性混合&#xff09;使用**addWeighted()**来添加两个图像 原理 (其实我也没太懂&#xff0c;留个坑&#xff0c;感觉本科的时候线代没学好。不对&#xff0c;我本科就没学线代。) 源码分析 源码链接 #include "opencv2/imgc…...

k8s学习笔记(一)

configMap 一般用来存储配置信息 创建configMap 从文件中获取信息创建&#xff1a;kubectl create configmap my-config --from-file/tmp/k8s/user.txt 直接指定信息&#xff1a; kubectl create configmap my-config01 --from-literalkey1config1 --from-literalkey2confi…...

自学前端——JavaScript篇

JavaScript 什么是JavsScript JavaScript是一种轻量级、解释型、面向对象的脚本语言。它主要被设计用于在网页上实现动态效果&#xff0c;增加用户与网页的交互性。 作为一种客户端语言&#xff0c;JavaScript可以直接嵌入HTML&#xff0c;并在浏览器中执行。 与HTML和CSS不…...

wordpress怎么设计首页/核心关键词如何优化

今天无意看到51CTO的周年庆擂台赛的参赛作品&#xff0c;其中有一个小雨的参赛宣言是“IT带给我们梦想。。。虽然这一行很累&#xff0c;但我喜欢。。”。看看这个宣言&#xff0c;在看看自己现在的工作&#xff0c;心里的疲倦顿时全没了。由于工作性质的特殊性&#xff0c;手机…...

免费商城版网站制作/短视频如何引流与推广

1.下载node.js 1).官网下载 如果是window7系统: 下载安装13的版本 URL: https://nodejs.org/dist/latest-v13.x/ 2).安装node.js 之后一路下一步安装即可. 3).检查node js版本 4).检查NPM版本号 5).切换淘宝NPM库 1).npm install -g cnpm --registryhttps://registry.npm.ta…...

wordpress需要ftp/如何推广小程序平台

什么是耦合?耦合&#xff0c;是架构中&#xff0c;本来不相干的代码、模块、服务、系统因为某些原因联系在一起&#xff0c;各自独立性差&#xff0c;影响则相互影响&#xff0c;变动则相互变动的一种架构状态。感官上&#xff0c;怎么发现系统中的耦合?作为技术人&#xff0…...

wordpress如何修改视频上传大小/广州百度网站排名优化

一、导语 接下来我们来做一个左侧菜单&#xff0c;因为我们这个经常用到&#xff0c;接下来我们来看看这个这个咋做的&#xff0c;废话不多说了&#xff0c;进入实战状态吧。 二、效果图 三、html的代码 <!DOCTYPE html> <html lang"en"> <head>&l…...

网站设计实验报告内容与步骤/网络竞价

title: python在线笔试学习笔记 localimage: image1 urlname: writenexam categories: summary tags: [writen, exam] date: 2019-9-17 10:00:00 摘要 本文主要介绍一些算法笔试过程中的几个输入输出python语句的代码格式 [x] Edit By Porter, 积水成渊,蛟龙生焉。 字符串型 单…...

自己架服务器做网站/百度一下电脑版

这里用到一个条件&#xff1a;启发式函数h(s)所估计的s点到终点的距离&#xff0c;一定要小于等于实际中s点到终点的距离才行&#xff08;不然第6步就不成立&#xff09;。...