【发布时间】:2022-01-21 09:50:30
【问题描述】:
我已经根据我的要求布置了 Java 架构,但正在努力构建查询部分。
架构如下
Class AbcRequest{
List<Filters> filters;
}
Class Filters{
String abcCode;
List<String> abcType;
}
Class abcController{
getFilters(List<String>someList, boolean status, AbcRequest request){
for(Filters filter: request.getFilters(){
String abcCode = filter.getAbcCode();
List<String> abcTypes = filter.getAbcType();
}
}
}
现在我想将这些值传递给存储库,并根据它从数据库中获取所需查询的列表。
我的查询应该有如下条件: 其中 ((someList in ('a','b') and status='false' and abcCode='8' and abcType in ('done','pending') OR (someList in ('a','b' ) and status='false' and abcCode='6' and abcType in ('pending'))
如何编写 MongoDB @Query 以从存储库方法中获取此类查询。 它是许多“AND”和“OR”的组合 例如:-- where (a AND b AND c AND d) OR (a AND e AND f AND d)
我知道如何将简单的 OR 与 @Query 一起使用:- 例如构建查询(其中 A=10 OR B=10) @Query('$or' : [{A:10},{B:10}])
但我想要构建的查询有点复杂,并且正在努力解决。我也不想使用 Criteria 因为我必须处理返回类型。最好是使用@Query,我也被指示使用@Query。
任何帮助将不胜感激。
【问题讨论】:
标签: java mongodb spring-boot spring-data-jpa mongodb-query