使用 Spring Data 和 MongoDB 从字段中检索最大值



我想使用 Spring Data 和 MongoDB 获取User实体中字段code的最大值。

我见过类似的例子,如下所示,

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

但是不知道如何使用@Query注释将其集成到我自己的repository中。

任何替代解决方案,而不是返回所述字段的最大值也是受欢迎的。 谢谢。

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

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

在 spring 使用此代码从 mongodb 获取最新更新时间:(mongoTemplate(

public List getTopPosts() {
Query query = new Query();
query.with(Sort.by(Sort.Direction.DESC, "postUploadedTime"));
return mongoTemplate.find(query,Post.class);
}

最新更新