MongoDB(MongoTemplate和MongoRepository)对比

目录

  • MongoTemplate
  • MongoRepository

MongoTemplate

 //条件查询@GetMapping("findUser")public void findUserList() {Query query = new Query(Criteria.where("name").is("zhang3").and("age").is(33));List<User> users = mongoTemplate.find(query, User.class);users.forEach(System.out::println);}//条件模糊查询@GetMapping("findUserLike")public void findUserLike() {String name = "ang";String regex = String.format("%s%s%s", "^.*", name, ".*$");Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);Query query = new Query(Criteria.where("name").regex(pattern));List<User> users = mongoTemplate.find(query, User.class);users.forEach(System.out::println);}//条件模糊分页查询@GetMapping("findUserPage")public void findUserPage() {//0定义分页参数int pageNo = 1;int pageSize = 10;//1设置筛选条件String name = "ang";String regex = String.format("%s%s%s", "^.*", name, ".*$");Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);Query query = new Query(Criteria.where("name").regex(pattern));//2查询总记录数totallong total = mongoTemplate.count(query, User.class);//3设置分页条件query.skip((pageNo-1)*pageSize).limit(pageSize);List<User> users = mongoTemplate.find(query, User.class);System.out.println("total = " + total);users.forEach(System.out::println);}//修改@GetMapping("update")public void updateUser() {User user = mongoTemplate.findById("5ffbfa2ac290f356edf9b5aa", User.class);user.setName("test_1");user.setAge(25);user.setEmail("493220990@qq.com");Query query = new Query(Criteria.where("_id").is(user.getId()));Update update = new Update();update.set("name", user.getName());update.set("age", user.getAge());update.set("email", user.getEmail());UpdateResult result = mongoTemplate.upsert(query, update, User.class);long count = result.getModifiedCount();System.out.println(count);}

MongoRepository

@GetMapping("create")public void createUser() {User user = new User();user.setAge(20);user.setName("张三");user.setEmail("3332200@qq.com");User user1 = userRepository.save(user);System.out.println("user1 = " + user1);}//查询所有@GetMapping("findAll")public void findUser() {List<User> users = userRepository.findAll();users.forEach(System.out::println);}//根据id查询@GetMapping("findId")public void getById() {User user = userRepository.findById("64b4a856a2225f220ec3fa0f").get();System.out.println("user = " + user);}//条件查询@GetMapping("findUser")public void findUserList() {User user = new User();user.setName("张三");user.setAge(20);Example<User> example = Example.of(user);List<User> users = userRepository.findAll(example);users.forEach(System.out::println);}//条件模糊查询@GetMapping("findUserLike")public void findUserLike() {//查询条件User user = new User();user.setName("三");//模板构造器ExampleMatcher matcher = ExampleMatcher.matching().withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING).withIgnoreCase(true);//查询条件模板Example<User> example = Example.of(user,matcher);List<User> users = userRepository.findAll(example);users.forEach(System.out::println);}//条件模糊分页查询@GetMapping("findUserPage")public void findUserPage() {//创建排序对象Sort sort = Sort.by(Sort.Direction.DESC,"age");//创建分页对象  第一页从0开始Pageable pageable = PageRequest.of(0,2,sort);//查询条件User user = new User();user.setName("三");//模板构造器ExampleMatcher matcher = ExampleMatcher.matching().withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING).withIgnoreCase(true);//查询条件模板Example<User> example = Example.of(user,matcher);Page<User> userPage = userRepository.findAll(example, pageable);userPage.getContent().forEach(System.out::println);System.out.println("userPage.getTotalElements() = " + userPage.getTotalElements());}//修改@GetMapping("update")public void updateUser() {User user = userRepository.findById("60b8d57ed539ed5b124942de").get();user.setName("张三_1");user.setAge(25);user.setEmail("883220990@qq.com");User save = userRepository.save(user);System.out.println(save);}//删除操作@GetMapping("delete")public void delete() {userRepository.deleteById("60b8d57ed539ed5b124942de");}@GetMapping("testMethod1")public void testMethod1() {List<User> users = userRepository.getByNameAndAge("张三",20);users.forEach(System.out::println);}@GetMapping("testMethod2")public void testMethod2() {List<User> users = userRepository.getByNameLike("三");users.forEach(System.out::println);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitbash2.41安装教程——2023.07

文章目录 1、下载安装包2、安装 1、下载安装包 进入官网下载&#xff0c;官网链接 上面有多种系统可以选择&#xff0c;我是windows&#xff0c;点击windows进行下载 这里可以直接下载最新版本的git 2.41.0 64位。 下载可能有点慢&#xff0c;耐心等待。 2、安装 下载完…

Hive基本操作

基本概念 Hive是基于Hadoop的一个【数据仓库工具】&#xff0c;可以将结构化和半结构化的数据文件映射为一张数据库表&#xff0c;并提供简单的sql查询功能。 介绍 Hive本质是将SQL转换为MapReduce的任务进行运算&#xff0c;底层由HDFS来提供数据存储&#xff0c;简单来说H…

JVM——类加载和垃圾回收

目录 前言 JVM简介 JVM内存区域划分 JVM的类加载机制 1.加载 双亲委派模型 2.验证 验证选项 3.准备 4.解析 5.初始化 触发类加载 JVM的垃圾回收策略 GC 一&#xff1a;找 谁是垃圾 1.引用计数 2.可达性分析 &#xff08;这个方案是Java采取的方案&#x…

基于单片机智能台灯坐姿矫正器视力保护器的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前当前光线强度、台灯灯光强度、当前时间、坐姿距离等&#xff1b;按键设置当前时间&#xff0c;闹钟、提醒时间、坐姿最小距离&#xff1b;通过超声波检测坐姿&#xff0c;当坐姿不正容易对眼睛和身体腰部等造成…

MySQL索引详解

索引 在MySQL中&#xff0c;查询方式可以根据访问表数据的方式分为两种&#xff1a;全表扫描和使用索引。 全表扫描&#xff08;Full Table Scan&#xff09;&#xff1a; 全表扫描是指在查询过程中&#xff0c;MySQL会遍历整个表的每一行来检查满足查询条件的数据。当查询条件…

Ubuntu下安装、配置及重装CUDA教程

安装CUDA 前往Nvidia CUDA Tools官网选择对应的架构和版本下载CUDA 以如下架构和版本为例&#xff1a; 查看显卡驱动 nvidia-smi如果显卡驱动已经装了&#xff0c;那么在CUDA安装过程中不用再勾选安装driver 下载并安装CUDA wget https://developer.download.nvidia.co…

Spring AOP

目录 AOP 理解AOP AOP组成 AOP的优点 Spring AOP 使用Spring AOP 定义切面和切点 定义通知 动态代理 织入 AOP 理解AOP AOP即面向切面编程&#xff0c;简单来说&#xff0c;就是把一部分通用的功能集中的放在一个地方处理的思想。假如某一段代码很多地方要用到&…

独立开发尝试第一周

独立开发尝试第一周 本周简单写了个前端页面&#xff0c;主要是json 在线可视化 申请了一个域名:https://jsonview.info/ 用vercel 部署了一下&#xff0c;真是神器&#xff0c;可以和github打通&#xff0c;代码提交一键部署 接入了google 分析 提交google、百度收录 短期…

创建型模式 - 建造者模式

概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于&#xff1a;某个对象的构建过程复杂的情况。 由于实现了构建和装配的解耦。…

pytest 参数化进阶

目录 前言&#xff1a; 语法 参数化误区 实践 简要回顾 前言&#xff1a; pytest是一个功能强大的Python测试框架&#xff0c;它提供了参数化功能&#xff0c;可以帮助简化测试用例的编写和管理。 语法 本文就赶紧聊一聊 pytest 的参数化是怎么玩的。 pytest.mark.par…

openGauss学习笔记-13 openGauss 简单数据管理-DELETE语句

文章目录 openGauss学习笔记-13 openGauss 简单数据管理-DELETE语句13.1 语法格式13.2 参数说明13.3 示例 openGauss学习笔记-13 openGauss 简单数据管理-DELETE语句 DELETE语句可以从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在&#xff0c;将删除表中所有行&…

IntelliJ IDEA快捷键

编写代码 CtrlShift Enter&#xff0c;语句完成。 “&#xff01;”&#xff0c;否定完成&#xff0c;输入表达式时按 “&#xff01;”键。 CtrlE&#xff0c;最近的文件。 CtrlShiftE&#xff0c;最近更改的文件。 ShiftClick&#xff08;鼠标&#xff09;&#xff0c;…

css 禁止多次点击导致的选中了目标div的文字

像下面这样的情况&#xff0c;就可以用这种方法避免掉 禁止多次点击&#xff0c;导致的&#xff0c;选中了目标div的文字 或者 禁止多次点击&#xff0c;导致&#xff0c;html结构被选中显示出来 .targetDiv {-webkit-user-select: none;-moz-user-select: none;-ms-user-sel…

【云原生】Docker的初步认识,安装与基本操作

一、Docker的相关知识 Docker是一个开源的应用容器引擎&#xff0c;基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的“虚拟机”。 Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的…

SpringCloud整合Sentinel

文章目录 1、Sentinel介绍2、安装Sentinel控制台3、微服务整合Sentinel 1、Sentinel介绍 阿里开源的流量控制组件官网&#xff1a;https://sentinelguard.io/zh-cn/index.html承接了阿里双十一大促流量的核心场景&#xff0c;如秒杀、消息削峰填谷、集群流量控制、实时熔断下游…

关于物理内存资料的介绍

HDD HDD是指机械硬盘&#xff0c;是传统普通的硬盘。 介质&#xff1a;采用磁性碟片来存储。 包括&#xff1a;盘片、磁头、磁盘旋转轴及控制电机、磁头控制器、数据转接器、接口、缓存。 机械式硬盘最大速率约为100MB/s&#xff0c;由于容易发热等原因已经无法再进一步提升…

【前端知识】React 基础巩固(二十四)——React 受控组件 非受控组件

React 基础巩固(二十四)——React 受控组件 & 非受控组件 React 受控组件 & 非受控组件 的简单案例 React 推荐大多数情况下使用受控组件来处理表单数据 在受控组件中&#xff0c;表单数据是由 React 组件来管理的另一种方式是使用非受控组件&#xff0c;表单数据将交…

Python自动化之pytest常用插件

目录 1、失败重跑 pytest-rerunfailures 2、多重校验 pytest-assume 3、设定执行顺序 pytest-ordering 4、用例依赖&#xff08;pytest-dependency&#xff09; 5.分布式测试(pytest-xdist) 6.生成报告&#xff08;pytest-html&#xff09; 1、失败重跑 pytest-rerunfailu…

Flutter 小技巧之滑动控件即将“抛弃” shrinkWrap 属性

相信对于 Flutter 开发的大家来说&#xff0c; ListView 的 shrinkWrap 配置都不会陌生&#xff0c;如下图所示&#xff0c;每当遇到类似的 unbounded error 的时候&#xff0c;总会有第一反应就是给 ListView 加上 shrinkWrap: true 就可以解决问题&#xff0c;那为什么现在会…

椒图——靶场模拟

先查看ip&#xff0c;10.12.13.232模拟的外网ip&#xff0c;其他的模拟内网ip&#xff0c;服务里面搭建好的漏洞环境。 #第一个测试项目&#xff0c;web风险发现 新建&#xff0c;下发任务&#xff0c;点威胁检测&#xff0c;webshell&#xff0c;点扫描任务&#xff0c;点新…