字段Spring Data和Mongodb的最大值

时间:2017-07-25 14:16:54

标签: spring-data-mongodb

我想计算我的实体“User”中的字段代码的最大值,使用Spring Data,我看到代码如下:

".find({}).sort({"updateTime" : -1}).limit(1)"

但我不知道如何使用@Query

将其集成到我的“存储库”中

或另一种等效解决方案,而不是返回所述字段的最大值。 有人能帮助我吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

您可以为存储库编写自定义方法。 例如,你有:

public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom {
...
}

存储库的其他方法:

public interface UserRepositoryCustom {
    User maxUser();
}

然后执行它:

public class UserRepositoryImpl implements UserRepositoryCustom { 
    @Autowired
    private MongoTemplate mongoTemplate;

    @Override
    public User maxUser() {
        final Query query = new Query()
                .limit(1)
                .with(new Sort(Sort.Direction.DESC, "updateTime"));

        return mongoTemplate.findOne(query, User.class)
    }
}

答案 1 :(得分:0)

您可以使用spring数据方法的语法,例如: public User findTopByOrderByUpdateTimeAsc()

可以在此处找到参考:https://www.baeldung.com/jpa-limit-query-results#1first-ortop