gpt4 book ai didi

java - 使用 Spring Data Repository 向 mongo JSON @Query 添加排序

转载 作者:可可西里 更新时间:2023-11-01 09:28:23 24 4
gpt4 key购买 nike

我想使用 mongo JSON queryfind 的结果进行排序并且做了一些阅读和实验后,我仍然无法让它工作。我有 PagingAndSortingRepository并且可以使用 Sort()findAll 上没有问题。

存储库类

public interface ThingRepository extends PagingAndSortingRepository<Thing, ObjectId> {
@org.springframework.data.mongodb.repository.Query("{ name:?0, $or : [ { state:'new' } , {state:'updated'} ] }")
List<Device> findThingsInNewOrUpdatedState(String name);
}

服务层

@Service
public class ThingService() {
@Autowired private ThingRepository thingRepository;

public List<Thing> getSortedThings() {
return (List<Thing>)thingRepository.findAll(new Sort(Sort.Direction.DESC, Arrays.asList("dateModified")));
}

public List<Thing> getNewOrUpdatedThingsSorted() {
return thingRepository.findThingsInNewOrUpdatedState(); // <-- this needs to be sorted
}
}

查询直接转换为 mongoDb 调用,效果很好

db.things.find({ name:'xxx', $or : [ { state:'new' }, {state:'updated'} ] })

我知道我可以添加 sort()在常规的 mongoDb 语法中,但无法解决如何从 Java/Spring Data 中执行此操作。它尝试将它添加到 @Query 但它不起作用,因为我认为 Spring 只是在执行 find() .

最佳答案

您应该能够简单地向查询方法添加一个 Sort 参数,从而动态地传入将应用于 中定义的查询的 Sort 实例@Query.

关于java - 使用 Spring Data Repository 向 mongo JSON @Query 添加排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com