springboot中使用mongodb进行简单的查询

文章目录

    • 引言
    • 依赖
    • 配置文件
    • 代码编写
      • 1、实体类
      • 2、使用repository查询
      • 3、使用MongoTemplate查询

引言

应用程序中,通常会使用两种数据库,一种是关系型数据库如mysql等,另一种则是非关系型数据库例如mongodb,今天我们就来讲一讲如何在springboot中使用mongodb。

依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>

配置文件

这里配置的单点

spring:data:mongodb:username: calculatepassword: 1234calculatehost: 120.79.128.190port: 27017database: data_db

代码编写

1、实体类

这里新建了一个新闻类的实体来做出说明

@Data
@Document(value = "test")
public class NewsMg {@Idprivate String id;/*** 标题*/@Field(value = "title")private String title;/*** 分类*/@Field(value = "news_type")private String type;/*** 描述*/@Field(value = "abstract")private String describe;/*** 链接*/@Field(value = "link")private String link;/*** 来源*/@Field(value = "source")private String source;/*** 作者*/@Field(value = "author")private String author;/*** 发表时间*/@Field(value = "date")private Long resourceTime;/*** 重要性*/@Field(value = "importance")private String importance;
}
  1. @Document注解
    这是第一个核心注解,mongodb中我们不是以表来指明,而是以文档,而这个注解最核心的就是collection或者是value,例如 @Document(value = “news”),这里注解在实体类上,表示将此实体类标注为文档类型,并且文档名为news,当然也可以不用使用这个文档名,后续会讲解
  2. @Field(value = “vol”)
    这个和@TableField一样,指定是一个字段
  3. @Id
    这个注解会指定mongodb的id,插入文档时会自动生成这个id
  4. 无需注意字段的类型,这里通过springboot会自动把字段映射到我们的实体上

2、使用repository查询

我们只需要继承接口MongoRepository<T,ID>接口即可

/*** 使用注解@Repository* 继承后实体类和主键类型*/
@Repository
public interface newsRepository extents MongoRepository<NewsMg,String>{/*** 通过id列表查找所有*/List<NewsMg> getAllByIdIn(List<String> ids);/*** 通过id查找*/NewsMg findById(String id);
}

这里可以使用很多,例如 findByXXInORYY(List XX, String YY),可以通过OR和AND连接条件,当然也可以使用注解 @Aggregation(pipeline={})直接写查询语句来实现复杂的查询
但是复杂查询也可以通过下面方式进行查询

3、使用MongoTemplate查询

相比上一个查询,这里的查询操作就稍微显得繁琐一点了

	/*** 注入bean */@Resourceprivate MongoTemplate mongoTemplate;public List<RealtimeOrder> queryAfter(Long time) {// 表名,也可以不用指定String tableName = "table_name";// 构造查询条件,这里where是字段名,后续可以跟is/gt/lt等全等比较条件// 如果还有字段,可以使用and(字段名)或者or(字段名)继续追加条件Criteria criteria = Criteria.where("字段名").gte(time);// 构造QueryQuery query = Query.query(criteria);// 这里query还可以追加排序等操作// 例如 query.with(Sort.by(Sort.Order.desc("date")))// limit, query.limit(查询条数)// query.addCriteria() 再次追加查询条件// 查询 使用mongoTemplate的方法// 查询所有mongoTemplate.find(Query.query(criteria), NewsMg.class, tableName);// 不指定表名则直接查询实体类注解Document中的集合名,这里就是 testmongoTemplate.find(Query.query(criteria), NewsMg.class);// 还有 findOne、findAll、count等方法,能够满足我们最基本的查询}

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

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

相关文章

PPT插件-大珩助手-文字整理功能介绍

删空白行 删除文本中的所有空白行 清理编号 删除文本中的段落编号 清理格式 删除文本中的换行、空格符号 清理艺术 删除文本的艺术字效果 清理边距 删除文本框与文字之间的间隙 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件&#xff0c;它是一款功能强大且实…

【Python案例实战】水质安全分析及建模预测

一、引言 1.水资源的重要性 水是生命之源,是人类生存和发展的基础。它是生态系统中不可或缺的组成部分,对于维系地球上的生命、农业、工业、城市发展等方面都具有至关重要的作用。 2.水质安全与人类健康的关系 水质安全直接关系到人类的健康和生存。水中的污染物和有害物…

苹果Mac电脑PDF优化压缩推荐 Recompress中文 for Mac

Recompress采用了先进的压缩技术&#xff0c;能够智能地分析PDF文件并确定哪些内容可以进一步压缩以节省存储空间。中文界面&#xff1a;Recompress Mac版提供了符合国人浏览习惯的中文界面&#xff0c;使得用户在使用时更加方便。批量压缩&#xff1a;Recompress支持批量压缩P…

Linux三剑客 grep、sed和awk浅析

grep、sed和awk是文本处理中最强大的三个命令行工具。它们在Linux中广泛用于文本搜索、替换、格式化和报告&#xff0c;下面我将详细介绍相关语法和使用案例。 grep (Global Regular Expression Print) grep是一个模式搜索工具&#xff0c;它使用正则表达式来搜索文本&#x…

海外直邮革命:跨境电商的全球化销售策略

在数字化时代&#xff0c;跨境电商正经历着一场革命&#xff0c;而海外直邮成为这场变革的引领者。全球范围内&#xff0c;越来越多的企业通过直邮方式销售商品&#xff0c;打破了地域限制&#xff0c;实现了商品的全球化流通。本文将深入探讨海外直邮的崛起&#xff0c;以及跨…

Spring Cloud Config相关问题及答案(2024)

1、什么是 Spring Cloud Config&#xff0c;它解决了哪些问题&#xff1f; Spring Cloud Config 是一个为微服务架构提供集中化外部配置支持的项目。它是构建在 Spring Cloud 生态系统之上&#xff0c;利用 Spring Boot 的开发便利性&#xff0c;简化了分布式系统中的配置管理…

文件管理方法和技巧,清除文件名中的大写字母

如何将多个文件名称中的大写字母都清除掉&#xff0c;有没有批量操作的方法&#xff1f;这个还真的有&#xff0c;今天小编就给各位朋友介绍一款很好用的软件——文件批量改名高手&#xff0c;助大伙一键清除多个文件名称中的所有大写字母。 所需工具&#xff1a; 一个【文件…

激情与创造的三重旋律:数学、编程与诗歌翻译的人生奏章

回顾过去的28载&#xff0c;我对生命中那些塑造我成长轨迹的经历充满感恩。自南京大学数学系求学起步&#xff0c;1995年毕业后携带着深厚的数学根基走入社会。从教学数学到转战编程领域&#xff0c;在泸州职业技术学院的教学生涯中逐渐过渡&#xff0c;这一过程仿佛顺理成章&a…

Mysql 中的常用命令

在数字化世界中&#xff0c;数据库已经成为数据存储和处理的核心。而MySQL&#xff0c;作为最受欢迎的关系型数据库管理系统之一&#xff0c;其强大的功能和易用性使它成为开发者和企业的首选。掌握MySQL中的常用命令&#xff0c;是每一位数据库管理员和开发者的基本要求。本篇…

RocketMQ5-01云原生和AI演变下的架构重构

2022年9月22日&#xff0c;迎来 RocketMQ5 的发版&#xff0c;距离 2017 发布的 4.X 时代&#xff0c;RocketMQ 迎来 5.X 时代。 RocketMQ 4.X 时代已经使众多开发者和项目受益&#xff0c;但是随着关注度、使用量逐步上升以及云原生时代的到来&#xff0c;也对其自身架构带来…

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start

无法开机报 不可恢复的错误&#xff1a;securityagent无法创建所要求的机制Teamviewerauthplugin:start 初步判断很有可能是TeamViewer的某个启动项或者签名书没有&#xff0c; 导致在预加载的时候无法加载TeamViewer。 然后出现这个情况有一个前提&#xff0c;那就是你用了第三…

神经网络框架的基本设计

一、神经网络框架设计的基本流程 确定网络结构、激活函数、损失函数、优化算法&#xff0c;模型的训练与验证&#xff0c;模型的评估和优化&#xff0c;模型的部署。 二、网络结构与激活函数 1、网络架构 这里我们使用的是多层感知机模型MLP(multilayer prrceptron)&#x…

如何委婉地告诉老板,BI连接金蝶ERP,对决策更有利?

网友&#xff1a;新入职一家企业&#xff0c;发现这家企业依旧是从金蝶ERP中导出数据做分析&#xff0c;这样数据量一大、科目变动多就很难保证数据分析的及时性、灵活性&#xff0c;说真的这对决策来说并不是什么好事。但老板似乎并不觉得这有什么不对。我该如何委婉地告诉老板…

Java 新手如何使用Spring MVC 中的查询字符串和查询参数

目录 前言 什么是查询字符串和查询参数&#xff1f; Spring MVC中的查询参数 处理可选参数 处理多个值 处理查询参数的默认值 处理查询字符串 示例&#xff1a;创建一个RESTful服务 总结 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家…

基于SSM的班级事务管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

《手把手教你》系列练习篇之6-python+ selenium自动化测试(详细教程)

1. 简介 今天我们还是继续练习练习基本功&#xff0c;各位小伙伴要耐住住性子&#xff0c;要耐得住寂寞啊&#xff0c;不要急躁&#xff0c;后面你会感谢你在前边的不断练习的。到后面也是检验你前边的学习成果的一次很好实践。 本文介绍如何通过link text、partial link text…

PHP运行环境之宝塔软件安装及Web站点部署流程

PHP运行环境之宝塔软件安装及Web站点部署流程 1.1安装宝塔软件 官网&#xff1a;https://www.bt.cn/new/index.html 自行注册账号&#xff0c;稍后有用 下载安装页面&#xff1a;宝塔面板下载&#xff0c;免费全能的服务器运维软件 1.1.1Linux 安装 如图所示&#xff0c;宝…

onnx的基本介绍

TensorRT 从框架中导入训练模型的主要方式是通过ONNX交换格式。 TensorRT 附带一个 ONNX 解析 器库来帮助导入模型。在可能的情况下&#xff0c;解析器向后兼容 opset 7&#xff1b; ONNX模型 Opset 版本转换器可以帮助解决不兼容问题。 GitHub 版本可能支持比 TensorRT 附带的…

Image - 体积最小的 base64 encode 1*1透明图片,透明背景图片base64编码

背景 前端开发时&#xff0c;有些<img>标签的src属性的值来源于接口&#xff0c;在接口获取结果之前&#xff0c;这个src应该设置为什么呢&#xff1f; 误区&#xff1a;设置为# 有人把src设置为<img src"#" />。 这是有问题的&#xff0c;浏览器解析…

2024.1.5每日一题

LeetCode每日一题 1944.队列中可以看到的人数 1944. 队列中可以看到的人数 - 力扣&#xff08;LeetCode&#xff09; 题目描述 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heig…