我已经根据自己的需求设计了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();
}
}
}
现在我想将这些值传递给存储库,并根据它从DB中获取所需查询的列表。
我的查询应该有这样的条件:where((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”的组合,例如:--其中(a AND b AND c AND d)OR(a AND e AND f AND d)
我知道如何在@Query中使用简单的OR:-例如构建一个查询(其中A=10 OR B=10)@Query('$or':[{A:10},{B:10}])
但是我想构建的查询有点复杂,我正在努力解决它。我也不想使用Criteria,因为我必须处理返回类型。最好是使用@Query,我也被指示使用@Query。
任何帮助将不胜感激。
2条答案
按热度按时间6ie5vjzr1#
你可以试试这个:
jv4diomz2#