通过spring引导存储库从mongodb中的集合获取最大日期

mcdcgff0  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(440)

我需要从mongodb(compass)by spring boot repository的集合中获取max date,并且字段“sendingsystemcode”必须等于“999”。
现在我是这样做的:

@Repository
public interface ControlFutureTransactionRepository extends 
MongoRepository<ControlFutureTransactionEntity, Integer>
{
    @Query("{'sendingSystemCode': {$eq: 999}}")
    List<ControlFutureTransactionEntity> getControlFutureTransactionBySendingSystemCode();
}

通过代码中的一个简单循环得到的最大日期,我想通过一个查询使代码更快,将最大日期添加到存储库中的方法中。出于某种原因,这个选项在谷歌很难找到。
谢谢!

nwo49xxi

nwo49xxi1#

您有两种选择:
选项1(聚合框架):

db.collection.aggregate([ {$match:{sendingSystemCode:999}} , {$group:{_id:"the_max_date" ,maxDate:{$max:"$createdDate"}}}        ])

选项2(查找/排序/限制):

db.collection.find({sendingSystemCode:999}).sort({createdDate:-1}).limit(1)

相关问题