MongoRepository接口介绍

MongoRepository MongoRepository是一个接口,与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个MongoDB集合中的文档数据进行增删改查 阅读详情
与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使
用Repository的功能,先继承MongoRepository<T, 
TD >接口,其中T为仓库保存的bean类,TD为该bean的唯一标识的类型,一般为ObjectId。之后在service中注入该接口就可以
使用,无需实现里面的方法,spring会根据定义的规则自动生成。

例:

public interface PersonRepository extends 

MongoRepository<Person, ObjectId>{ 
//这里可以添加额外的查询方法 
} 

但是MongoRepository实现了的只是最基本的增删改查的功能,要想增加额外的查询方法,可以按照以下规则定义接口的方法。自定义查询方
法,格式为“findBy+字段名+方法后缀”,方法传进的参数即字段的值,此外还支持分页查询,通过传进一个Pageable 对象,返回Page集合。

例:

public interface PersonRepository extends 

MongoRepository<Person, ObjectId>{ 
//查询大于age的数据 
public Page<Product> find ByAgeGreaterThan(int age,Pageable page) ; 
} 

下面是支持的查询类型,每三条数据分别对应:(方法后缀,方法例子,mongodb原生查询语句)

GreaterThan(大于) 
findByAgeGreaterThan(int age) 
{"age" : {"$gt" : age}}

LessThan(小于) 
findByAgeLessThan(int age) 
{"age" : {"$lt" : age}}

Between(在...之间) 
findByAgeBetween(int from, int to) 
{"age" : {"$gt" : from, "$lt" : to}}

IsNotNull, NotNull(是否非空) 
findByFirstnameNotNull() 
{"age" : {"$ ne " : null}}

IsNull, Null(是否为空) 
findByFirstnameNull() 
{"age" : null}

Like(模糊查询) 
findByFirstnameLike(String name) 
{"age" : age} ( age as regex)

(No keyword) findByFirstname(String name) 
{"age" : name}

Not(不包含) 
findByFirstnameNot(String name) 
{"age" : {"$ ne " : name}}

Ne ar(查询地理位置相近的) 
findByLocationNear(Point point) 
{"location" : {"$near" : [x,y]}}

Within(在地理位置范围内的) 
findByLocationWithin( Circle   circle ) 
{"location" : {"$within" : {"$center" : [ [x, y], distance]}}}

Within(在地理位置范围内的) 
findByLocationWithin(Box box) 
{"location" : {"$within" : {"$box" : [ [x1, y1], x2, y2]}}}

尽管以上查询功能已经很丰富,但如果还不能满足使用情况的话可以用一下方法---基于mongodb原本查询语句的查询方式。
例:在原接口中加入

@Query("{ 'name':{'$regex':?2,'$options':'i'}, sales': {'$gte':?1,'$lte':?2}}") 
public Page<Product> findByNameAndAgeRange(String name,double ageFrom,double ageTo,Pageable page); 

注释Query里面的就是mongodb原来的查询语法,我们可以定义传进来的查询参数,通过坐标定义方法的参数。

还可以在后面指定要返回的数据字段,如上面的例子修改如下,则只通过person表里面的name和age字段构建person对象。 

@Query(value="{ 'name':{'$regex':?2,'$options':'i'}, sales':{'$gte':?1,'$lte':?2}}",fields="{ 'name' : 1, 'age' : 1}") 

public Page<Product> findByNameAndAgeRange(String name,double ageFrom,double ageTo,Pageable page);


Spring boot集成mongodb使用MongoRepository完成CURD和复杂查询 Spring boot集成mongodb-使用MongoRepository完成CURD和复杂查询 阅读详情

相关推荐

mongodb基于MongoRepository开发CRUD

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nlSdCpp2-1684581540741)(mongodb.assets/1671862679594.png)]Spring Data提供了对mongodb数据访问的支持,我们只需要继承MongoRepository类,按照Spring Data规范就可以了。5、 支持属性的级联查询,但若当前类有符合条件的属性则优先使用,而不使用级联属性,若需要使用级联属性,则属性之间使用_强制进行连接。SpringData 方法定义规范。

weixin_62169170的博客 295

参考MongoRepository,为接口生成bean实现注入

首先弄个注解,给代码个入口,这个就是mongo的@EnableMongoRepositories了。 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @Import(ProxyBeanDefinitionRegistrar.class) public @inte...

weixin_30808575的博客 739

SpringBoot系列之基于MongoRepository实现分页

Spring Data MongoDB项目提供了与MongoDB文档数据库的集成。是Spring Data项目的一个分支。本博客基于Spring Data MongoDB实现,引入项目spring-boot-starter-data-mongodb实现MongoDB的分页,仅供参考

Nicky's blog 1977

4.6-Repository API

Repository API RepositoryAPI TreeRepositoryAPI MongoRepositoryAPI RepositoryAPI manager - 存储库使用的EntityManager。 const manager = repository.manager; metadata - 存储库管理的实体的EntityMetadata。 更多关于实体元数据中的事务. const metadata = repository.metadata; queryRunner

qq_27664967的博客 327

AWD线下攻防赛总结

在本地组策略编辑器里面,依次展开计算机配置—>管理模板—>Windows组件—>远程桌面服务—>远程桌面会话主机—>连接—>限制连接的数量。8.Web目录环境查找相关可疑文件:jpg/png/rar,属性、解压。进程线程:netstat / ps -aux/netstat -apt。4.查看/etc/init.d/rc.local中启动服务有无异常。1.不使用默认口令,修改成复杂的,并确保和web环境连接。5.使用脚本开启进程监控、目录监控、流量监控。文件操作监控.exe/御剑文件监控.exe。

XuJL89的博客 630

2.13寸电子墨水屏HINK-E0213+esp8266

很久以前买的一块电子墨水屏,运气很好,这个型号HINK-E0213资料很全,而且微雪官网也有相关电路资料等。

梦境虽美,却不长. 3003

MongoDB相关API

文章目录1、简单的连接查询2、过滤查询3、插入数据4、Kafka to MongoDB5、使用java读取MongoDB的消费 pom依赖 <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</

小小鱼 510

ABAQUS二次开发中创建SET

在ABAQUS中创建加载、边界条件时,需要使用set,创建set时需要使用对象集合对象中的Set函数,这个函数需要提供加入对象集合的列表,但这个对象列表好像并不能自行创建,只能通过ABAQUS各类对象集合中的findAt、getSequenceFromMask、getByBoundingSphere、getByBoundingCylinder或getByBoundingSphere函数得到,但这几个函数在直接使用PYTHON编程时都不太好用。这个函数返回一个字典,如下所示。

hohoyu的专栏 2482

mongoRepository,MongoTemplate

1. 介绍 掠过 2. 用法 为了访问entity,需要完善的repository支持,只需创建一个接口即可。 假设一个模型: public class Person { @Id private String id; private String firstname; private String lastname; private Address address...

novodexx的博客 8144

计组实验5:cache大小测量与 cache line 大小测量

前言 今天做了实验5,通过 c 语言测 cache 参数。其实按理来说挺简单的,只是我们班没给代码,纯靠自己。听说别的班有给代码 emm 因为《深入理解计算机系统》这本书上面给的代码是 Linux 平台下的,而且需要一个 fcyc2 头文件,可以在 https://github.com/fabiensanglard/CpuCacheMountainViewer 这里找到。 ⚠ 我没有在 Linux 下试过课本上面的代码。。。 我是在 win10 下测试的。。。 所以 。。。 我并不确定我的代码是否正确。

AKGWSB 's blog 1万+

VSCode搭配Keil开发STM32:从环境配置到代码跳转全流程(避坑指南)

本文详细介绍了如何使用VSCode搭配Keil进行STM32开发,从环境配置到代码跳转的全流程指南。通过安装必备插件和正确配置项目文件,开发者可以在VSCode中享受现代编辑器的便捷功能,同时保留Keil的编译调试能力,提升嵌入式开发效率。

weixin_28832121的博客 253

mongorepository查询条件_MongoRepository的多条件查询和排序功能

继承MongoRepository也太香了吧mongonDB作为非关系型数据库是非关系数据库当中功能最丰富,最像关系数据库的。因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,而且还支持对数据建立索引,分页查询、多条件查询和排序功能这都不是问题。不光香,还能造!能够减轻数据库的压力,提高系统性能.首先直接上依赖org.springf...

weixin_32572129的博客 2295

MEMS惯性传感器关键参数解析与误差优化策略

本文深入解析了MEMS惯性传感器的关键性能参数,如零偏稳定性、噪声与随机游走、振动整流误差等,并阐述了这些误差如何导致设备导航漂移、姿态不稳等问题。文章重点探讨了从硬件选型、系统设计到校准补偿、算法融合(如卡尔曼滤波)以及温度补偿等实战优化策略,旨在帮助工程师有效提升自动驾驶、无人机等设备的测量精度与稳定性。

weixin_28363123的博客 414

springboot整合mongodb MongoTemplate和MongoRepository的用法

Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库。两者在分布式、微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合MongoDB的两种方法:MongoRepository和MongoTemplate。 1.MongoRepository 以Spring Date为中心的方法,基于所有Spring数据项目中众所周知的访问模式,提供更加灵活和复杂的api操作。 1.使用Spring Data MongoDb Repository可以使你不用写

u010797364的博客 2720

Ubuntu离线情况下安装gcc编译器

Ubuntu离线情况下安装gcc编译器1.系统版本2.安装说明3.异常处理 1.系统版本 (1)Ubuntu系统版本:20.04.1LTS; (2)gcc编译器版本:gcc-9.3.0(下载链接为https://download.youkuaiyun.com/download/qq_18350351/13762214); 当前可找到的gcc最新版本为gcc-10,但是笔者在安装gcc-10版本时发现一些依赖项无法安装,因此选取了gcc-9版本。如果是在联网情况下安装,直接使用apt相关的安装指令即可。 2.安装说明 安

GreenHand的博客 3932

购物车智能检测系统:YOLO26 + PyQt5 毕设实现

YOLO26 + PyQt5 完成购物车商品检测系统:标注数据集(OpenImages 筛选 + 自制 500 张),训练 100 epoch 得到 mAP50 约 0.89,集成商品定价后输出总价。建议先用 OpenImages 预训练权重在自制数据上调优(冻住 backbone 前 50 epoch),等 loss 稳定后再解冻全量训练。

m0_64661770的博客 56

mongorepository查询条件_mongoRepository 支持的所有接口

与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使用Repository的功能,先继承MongoRepositoryTD>接口,其中T为仓库保存的bean类,TD为该bean的唯一标识的类型,一般为ObjectId。之后在service中注入该接口就可以使用,无需实现里面的方法,spring会根据定义的规...

weixin_36199334的博客 1500

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring boot集成mongoDB使用MongoRepository

引入依赖 springboot集成MongoDb引入依赖 <!--spring data mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 看一下MongoReposit

程序员路同学 1952

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SpringBoot操作MongoDB之MongoRepository

文章目录前言参考链接时间线MongoRepository简介使用前的准备Mavenapplication.properties配置使用使用流程设计好collections格式编写实体类实现MongoRepository接口创建Service层简单的增删改查增删改查一些需求Page分页Repository层Service层@Queryvalue匹配查询模糊查询条件查询对象查询更多fieldssort总结 前言 之前写过一篇关于MongoDB的总结 其中就已经包含了SpringBoot操作MongoDB之Mo

zhj_1121的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

mongoRepository 支持的所有接口

与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使用Repository的功能,先继承MongoRepository<T,TD>接口,其中T为仓库保存的bean类,TD为该bean的唯一标识的类型,一般为ObjectId。之后在service中注入该接口就可以使用,无需实现里面的方法,s...

weixin_30888413的博客 1297

SpringBoot 整合 Mongodb 与 MongoTemplate、MongoRepository 用法教程

提供与两种操作方式操作简单 缺点是不够灵活操作灵活,在项目中可以灵活使用这两种方式。

李虹柏的博客 1383

MongoRepository排序

MongoRepository排序 解决方法: import org.springframework.data.domain.Sort; taskDoWithDesignerDao.findAllByDesignerId(http://www.yayihouse.com/yayishuwu/chapter/2202); 其中findAllByDesignerId方法是已实现了Mong...

qq_30908729的博客 2482

Springboot系列之二十三(2):Spring boot集成mongodb使用MongoRepository完成CURD和复杂查询

https://blog.youkuaiyun.com/weixin_39214304/article/details/84791953 Spring Data简介 Spring Data 是spring的组件之一,主要目的是为了让开发者再工作中能更加轻松的完成CURD,简化代码应该是所有框架的目的吧。今天介绍的Spring-data-mongodb只是其中的一个模块而已,Spring团队的强大不言而喻,有兴...

qq_32534441的博客 5845

同时使用MongoTemplate和MongoRepository

同时使用MongoTemplate和MongoRepository 第一步 interface CustomEmployeeRepository{ List<Employee> CustomEmployeeMethod(String field) } 第二步 @Repository public class CustomEmployeeRepositoryImpl implements CustomEmployeeRepository{ @Autowired priv

abc45628的专栏 1051

使用 springdata MongoRepository,项目启动报错

OnlineFeedbackRepo继承MongoRepository /** * 在线反馈实体仓库 */ public interface OnlineFeedbackRepo extends MongoRepository<OnlineFeedback, String> { } service注入OnlineFeedbackRepo @Slf4j @Service public class OnlineFeedbackServiceImpl implements OnlineFeedb

weixin_38205301的博客 1305
上一篇: Spring Boot:在Spring Boot中使用定时任务
下一篇: linux svn装配和配置,不结合apache
搞懂鸭
博客等级 码龄14年 9粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值