Spring Data MongoRepository 获取最新一条记录
Posted Defonds
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data MongoRepository 获取最新一条记录相关的知识,希望对你有一定的参考价值。
Mongodb 某张表结构示例如下:
{
"instanceSpec": "ecs.c6e.xlarge",
"productName": "云服务器 ECS",
"instanceID": "i-j6cioly7ub9e0hqh0od5",
"deductedByCashCoupons": 0,
"listPriceUnit": "",
"billingDate": "2021-06-08",
"listPrice": "",
"paymentAmount": 16.18,
"deductedByPrepaidCard": 0,
"invoiceDiscount": 0,
"subscriptionType": "PayAsYouGo",
"item": "PayAsYouGoBill",
"pretaxGrossAmount": 16.202998,
"instanceConfig": "iz:香港可用区 D;实例规格名称:ecs.c6e.xlarge;CPU:4;内存:8192;磁盘:4;外网出方向带宽:0.0Mbps;OS:UBUNTU;是否io优化:io_optimized_only",
"currency": "CNY",
"commodityCode": "ecs",
"costUnit": "未分配",
"resourceGroup": "默认资源组",
"billingType": "其它",
"usage": "",
"deductedByCoupons": 0,
"productDetail": "云服务器ECS-按量付费",
"productCode": "ecs",
"zone": "cn-hongkong-d",
"productType": "",
"outstandingAmount": 0,
"billingItem": "",
"nickName": "prod-Online-Mongo3-new3",
"intranetIP": "18.31.25.14",
"pipCode": "ecs",
"servicePeriodUnit": "秒",
"servicePeriod": "39600",
"deductedByResourcePackage": "",
"usageUnit": "",
"ownerID": "1644990457084567",
"pretaxAmount": 16.18,
"internetIP": "47.43.38.27",
"region": "中国(香港)",
"tag": "key:国际部 value:香港"
}
现在需要根据 instanceID 查出其 billingDate 最新的一条记录,Spring Data MongoRepository 可以使用如下写法:
// 找到给定实例最新的一条账单数据
@Query(value="{'instanceID':?0}")
AliyunInstanceEcsBill findTop1ByBillingDateDesc(String instanceId);
参考自《Get last created document in Mongodb using Spring Data repository》。
提问者的示例代码:
@Data
@Document
public class Batch
{
@Id
String id;
LocalDateTime created;
//other stuff
}
public interface BatchRepository extends MongoRepository<Batch,String>
{
//this does not work
//Batch findOneOrderByCreatedDesc();
}
Notice that the method name slightly differs from your variant, this difference is important as spring parses the method name and builds a query based on the result of parsing.
Zon:
findTopByOrderByCreatedDesc(); -> findTop1ByCreatedDesc();
以上是关于Spring Data MongoRepository 获取最新一条记录的主要内容,如果未能解决你的问题,请参考以下文章
如何利用spring data mongodb 进行多条件查询
Spring Data 系列 Spring+JPA(spring-data-commons)
初探 spring data--- spring data 概述
spring-data-jpa 和 spring-boot-starter-data-jpa 的区别
无法将 Spring Data MongoDB + Spring Data JPA 与 Spring Boot 一起使用