来自字段 Spring 数据和 Mongodb 的最大值

Max value from field Spring Data and Mongodb

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

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

但我不知道如何使用@Query

将它集成到我的"repository"中

或另一个等效解决方案,而不是 return 所述字段的最大值。 有人可以帮我吗? 谢谢。

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

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)
    }
}

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

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