国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

spring boot mogodb多條件拼接的解決方法

2024-07-14 08:42:03
字體:
來源:轉載
供稿:網友

起因

當前我們使用mongodb進行查詢時,有時我們的條件是分塊生成的,它可能來自一個列表里,我們的條件需要根據列表去返回數據,這里有個問題,如果遍歷列表,然后每次都去從mongodb里查詢數據 ,這種性能顯然是不好的,我們需要把條件進行拼接,一次把數據查詢出來!

分析

使用Criteria這個對象去構建查詢條件,使用orOperator來組合多個Criteria實例,最終將列表里所有條件拼接出來,從返回查詢一次即可返回全部數據 。

Criteria[] criterias = criteriaList.toArray(new Criteria[criteriaList.size()]); Criteria criteria = new Criteria(); criteria.orOperator(criterias); Query query = Query.query(criteria);

實現

private List<x> getClients(List<CodeAccountPeriod> codeAccountPeriods) { List<Criteria> criteriaList = new ArrayList<>();  for (CodeAccountPeriod codeAccountPeriod : codeAccountPeriods) {   criteriaList.add(where("accountPeriod").is(codeAccountPeriod.getAccountPeriod())     .and("code").is(codeAccountPeriod.getCode())   );  }  Criteria[] criterias = criteriaList.toArray(new Criteria[criteriaList.size()]);  Criteria criteria = new Criteria();  criteria.orOperator(criterias);  Query query = Query.query(criteria);  List<String> fields = new ArrayList<String>(    Arrays.asList("accountPeriod", "code", "client", "taxProperty", "version"));  for (String name : fields) {   query.fields().include(name);  }  List<x> clients = mongoTemplate.find(query, x);return clients;

有時解決問題的方法可以有多種,我們需要從另一個方面去考慮它。

總結

以上所述是小編給大家介紹的spring boot mogodb多條件拼接的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城口县| 天全县| 庐江县| 通辽市| 张家口市| 平舆县| 建德市| 准格尔旗| 安龙县| 武山县| 凤凰县| 昆山市| 东至县| 漾濞| 湾仔区| 浪卡子县| 营口市| 土默特右旗| 兰西县| 丹巴县| 江达县| 古丈县| 曲靖市| 涞水县| 肥东县| 赫章县| 松江区| 平江县| 清水河县| 梅州市| 怀远县| 乡宁县| 武义县| 嵊州市| 建湖县| 霸州市| 内黄县| 柳州市| 百色市| 安新县| 兰坪|