mongoRepository mongoTemplate

摘要:
自定义查询方法,格式为“findBy+字段名+方法后缀”,方法传进的参数即字段的值,此外还支持分页查询,通过传进一个Pageable对象,返回Page集合。
https://docs.spring.io/spring-data/data-mongodb/docs/current/reference/html/ 在pom文件引入spring-boot-starter-data-mongodb依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
  </dependency>
数据源的配置 如果mongodb端口是默认端口,并且没有设置密码,可不配置,sprinboot会开启默认的。
spring.data.mongodb.uri=mongodb://localhost:27017/mydb
如何mongodb设置了密码,这样配置:
spring.data.mongodb.uri=mongodb://kerry:123456@localhost:27017/mydb
如果多个节点集群配置
#more ip cluster
  1. #spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2/database
接下来进入正题 MongoRepository MongoRepository是一个接口类,这个接口有基本的crud方法:

interface EntityDao extends MongoRepository<Entity, ObjectId>

前者为实体类,后者为实体主键,第二个参数没有查到文档,网上有人直接写String/Long,似乎并不影响也不会报错 如果想增加额外的查询方法,可以按照以下规则定义接口的方法。

自定义查询方法,格式为“findBy+字段名+方法后缀”,方法传进的参数即字段的值,此外还支持分页查询,通过传进一个Pageable对象,返回Page集合。

例:

public interface PersonRepository extends MongoRepository<Person, ObjectId>{

//查询大于age的数据

public Page<Product> findByAgeGreaterThan(int age,Pageable page) ; }

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

GreaterThan(大于)

findByAgeGreaterThan(int age)

{"age" : {"$gt" : age}}

LessThan(小于)

findByAgeLessThan(int age)

{"age" : {"$lt" : age}}

........

其他的见博客:

https://blog.csdn.net/codeiswhat/article/details/52129782mongoTemplate mongoTemplate需要引入注解,跟前者比稍复杂一些. 总之:https://stackoverflow.com/questions/17008947/whats-the-difference-between-spring-datas-mongotemplate-and-mongorepository We generally recommend the following approach:
  1. Start with the repository abstract and just declare simple queries using the query derivation mechanism or manually defined queries.
  2. For more complex queries, add manually implemented methods to the repository (as documented here). For the implementation useMongoTemplate.

免责声明:文章转载自《mongoRepository mongoTemplate》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决SpringBoot 报错 Error parsing HTTP request headerYOLOV5源码解读-export.py网络结构、配置文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

NoSQL代表: Mongo DB(芒果数据库)

转载(NoSQL代表: Mongo DB(芒果数据库) ) 一、MongoDB简介         MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。(humongous:堆积如山)2011年将被记住,...

打造独特的ORM开发框架

ORM一直是长久不衰的话题,各种重复造轮子的过程一直在进行,轮子都一样是圆的,你的又有什么特点呢? CRL这个轮子造了好多年,功能也越来越标准完备,在开发过程中,解决了很多问题,先上一张脑图描述CRL的功能 开发框架的意义在于 开发更标准,更统一,不会因为不同人写的代码不一样 开发效率更高,无需重新造轮子,重复无用的代码,同时简化开发流程 运行效率得到...

MongoDB 聚合框架 (1/2)

MongoDB 聚合框架(Aggregtaion Framework)是一个计算框架,它可以: 作用在一个或几个集合上; 对集合中的数据进行一系列的运算; 将这些数据转化为期望的形式; 从效果而言,聚合框架相当于 SQL 查询中的: Group By Left Outer Join As等 管道(Pipeline)和步骤(Stage)...

mongodb安装及基础命令

安装mongodb(mongodb-linux-x86_64-3.2.4.tgz)1 export PATH=$PATH:/usr/local/mongodb/bin2 /usr/local/mongodb/bin 新增mongodb.conf port=27017 dbpath=/opt/mongodb/data/db logpath=/opt/mong...

mongodb模糊查询包含特殊字符

mongodb中的待特殊字符的模糊查询需要转义下才能查到 (name: /wo*2hjf/ 查不到 name: /wo*2hjf/ 查得到) let str=wo*2hjf; let filter1={ name: new RegExp(str) }; let filter2={ name: new RegExp(str.replace(/*/g,'\*...

10种 分布式ID生成方式(新增MongoDB的ObjectId)

一、为什么要用分布式ID? 在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征? 1、什么是分布式ID? 拿MySQL数据库举个栗子: 在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。 但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表...