欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中的MongoTemplate的各種條件查詢示例詳解

 更新時間:2024年01月05日 14:43:00   作者:kenhins  
這篇文章主要介紹了SpringBoot中的MongoTemplate的各種條件查詢示例詳解,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借價值,需要的朋友參考下吧

SpringBoot之MongoTemplate的各種條件查詢 (嵌套對象查詢)

    /**
     * 指定field查詢
     */
    public void specialFieldQuery() {
        Query query = new Query(Criteria.where("user").is("用戶名blog"));
        // 查詢一條滿足條件的數據
        Map result = mongoTemplate.findOne(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | specialFieldQueryOne: " + result);

        // 滿足所有條件的數據
        List<Map> ans = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | specialFieldQueryAll: " + ans);
    }

    /**
     * 多個查詢條件同時滿足
     */
    public void andQuery() {
        Query query = new Query(Criteria.where("user").is("用戶名blog").and("age").is(18));
        Map result = mongoTemplate.findOne(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | andQuery: " + result);
    }

    /**
     * 或查詢
     */
    public void orQuery() {
        // 等同于 db.getCollection('demo').find({"user": "用戶名blog", $or: [{ "age": 18}, { "sign": {$exists: true}}]})
        Query query = new Query(Criteria.where("user").is("用戶名blog")
                .orOperator(Criteria.where("age").is(18), Criteria.where("sign").exists(true)));
        List<Map> result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | orQuery: " + result);

        // 單獨的or查詢
        // 等同于Query: { "$or" : [{ "age" : 18 }, { "sign" : { "$exists" : true } }] }, Fields: { }, Sort: { }
        query = new Query(new Criteria().orOperator(Criteria.where("age").is(18), Criteria.where("sign").exists(true)));
        result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | orQuery: " + result);
    }

    /**
     * in查詢
     */
    public void inQuery() {
        // 相當于:
        Query query = new Query(Criteria.where("age").in(Arrays.asList(18, 20, 30)));
        List<Map> result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | inQuery: " + result);
    }

    /**
     * 數字類型,比較查詢 >
     */
    public void compareBigQuery() {
        // age > 18
        Query query = new Query(Criteria.where("age").gt(18));
        List<Map> result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | compareBigQuery: " + result);

        // age >= 18
        query = new Query(Criteria.where("age").gte(18));
        result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | compareBigQuery: " + result);
    }

    /**
     * 數字類型,比較查詢 <
     */
    public void compareSmallQuery() {
        // age < 20
        Query query = new Query(Criteria.where("age").lt(20));
        List<Map> result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | compareSmallQuery: " + result);

        // age <= 20
        query = new Query(Criteria.where("age").lte(20));
        result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | compareSmallQuery: " + result);
    }


    /**
     * 正則查詢
     */
    public void regexQuery() {
        Query query = new Query(Criteria.where("user").regex("^用戶名blog"));
        List<Map> result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | regexQuery: " + result);
    }

    /**
     * 查詢總數
     */
    public void countQuery() {
        Query query = new Query(Criteria.where("user").is("用戶名blog"));
        long cnt = mongoTemplate.count(query, COLLECTION_NAME);
        System.out.println("query: " + query + " | cnt " + cnt);
    }

    /**
     * 查詢總數
     */
    public void countQuery() {
        Query query = new Query(Criteria.where("user").is("用戶名blog"));
        long cnt = mongoTemplate.count(query, COLLECTION_NAME);
        System.out.println("query: " + query + " | cnt " + cnt);
    }


    /**
     * 排序查詢
     */
    public void sortQuery() {
        // sort查詢條件,需要用with來銜接
        Query query = Query.query(Criteria.where("user").is("用戶名blog")).with(Sort.by("age"));
        List<Map> result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | sortQuery " + result);
    }

    /**
     * 分頁查詢
     */
    public void pageQuery() {
        // limit限定查詢2條
        Query query = Query.query(Criteria.where("user").is("用戶名blog")).with(Sort.by("age")).limit(2);
        List<Map> result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | limitPageQuery " + result);


        // skip()方法來跳過指定數量的數據
        query = Query.query(Criteria.where("user").is("用戶名blog")).with(Sort.by("age")).skip(2);
        result = mongoTemplate.find(query, Map.class, COLLECTION_NAME);
        System.out.println("query: " + query + " | skipPageQuery " + result);
    }

mongodbTemplate 查詢嵌套對象(嵌套對象屬性為條件)

    @ApiOperation("測試查詢")
    @PostMapping("/getTestList")
    public Response<IPage<TicketResp>> getTestList(TicketVo ticket,
                                                     @RequestParam(required = false) Integer pageNum,
                                                     @RequestParam(required = false) Integer pageSize) {
        if(null == pageNum || null == pageSize){
            pageNum = 1;pageSize = 10;
        }
        IPage<TicketResp> page = new Page<>(pageNum,pageSize);
        page = ticketService.getMyTicketList(page,ticket);
        //return Response.ok(page);
//        Criteria criteria = Criteria.where("_id").is(ticket.getTicketKey())
//                .and("ticketContent.createUser").is("110201010");
        Criteria criteria = Criteria.where("ticketContent.createUser").is("110201010");
        Query query = new Query(criteria);
        List<TicketInfo> objList = mongoTemplate.find(query, TicketInfo.class);
        return Response.ok(objList);
//        History history = null;
//        //封裝對象列表查詢條件
//        List<AggregationOperation> commonOperations = new ArrayList<>();
//        //1. 指定查詢主文檔
//        MatchOperation match = Aggregation.match(Criteria.where("userId").is("2"));
//        commonOperations.add(match);
//        //2. 指定投影,返回哪些字段
//        ProjectionOperation project = Aggregation.project("historyList");
//        commonOperations.add(project);
//        //3. 拆分內嵌文檔
//        UnwindOperation unwind = Aggregation.unwind("historyList");
//        commonOperations.add(unwind);
//        //4. 指定查詢子文檔
//        MatchOperation match2 = Aggregation.match(
//                Criteria.where("historyList.hh").is("2"));
//        commonOperations.add(match2);
//
//        //創(chuàng)建管道查詢對象
//        Aggregation aggregation = Aggregation.newAggregation(commonOperations);
//        AggregationResults<JSONObject> reminds = mongoTemplate
//                .aggregate(aggregation, "history", JSONObject.class);
//        List<JSONObject> mappedResults = reminds.getMappedResults();
//        if (mappedResults != null && mappedResults.size() > 0) {
//            history = JSONObject
//                    .parseObject(mappedResults.get(0).getJSONObject("historyList").toJSONString(), History.class);
//        }
    }

到此這篇關于SpringBoot中的MongoTemplate的各種條件查詢的文章就介紹到這了,更多相關SpringBoot MongoTemplate條件查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java數據類型轉換的示例詳解

    Java數據類型轉換的示例詳解

    Java程序中要求參與的計算的數據,必須要保證數據類型的一致性,如果數據類型不一致將發(fā)生類型的轉換。本文將通過示例詳細說說Java中數據類型的轉換,感興趣的可以了解一下
    2022-10-10
  • Java多文件生成并壓縮下載功能(思路詳解)

    Java多文件生成并壓縮下載功能(思路詳解)

    這篇文章主要介紹了Java多文件生成并壓縮下載,本文給大家分享兩種思路通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Java中的循環(huán)筆記整理(必看篇)

    Java中的循環(huán)筆記整理(必看篇)

    下面小編就為大家?guī)硪黄狫ava中的循環(huán)筆記整理(必看篇)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • JAVA對字符串進行32位MD5加密的實踐

    JAVA對字符串進行32位MD5加密的實踐

    本文主要介紹了JAVA對字符串進行32位MD5加密的實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 超全面的SpringBoot面試題含答案

    超全面的SpringBoot面試題含答案

    這篇文章主要收錄了44道面試中經常被問的SpringBoot問題,不管你是正在求職的新手還是已經工作很久的高手,這篇關于SpringBoot的面試題總結一定會讓你有新的理解,讓我們一起來看看吧
    2023-03-03
  • javaSE基礎如何通俗的理解javaBean是什么

    javaSE基礎如何通俗的理解javaBean是什么

    所謂的Java Bean,就是一個java類,編譯后成為了一個后綴名是 .class的文件。這就是Java Bean,很多初學者,包括當年的我自己,總是被這些專有名詞搞的暈頭轉向
    2021-10-10
  • Java流程控制語句最全匯總(下篇)

    Java流程控制語句最全匯總(下篇)

    這篇文章主要介紹了Java流程控制語句最全匯總(下篇),本文章內容詳細,通過案例可以更好的理解數組的相關知識,本模塊分為了三部分,本次為下篇,需要的朋友可以參考下
    2023-01-01
  • SpringBoot整合RabbitMQ處理死信隊列和延遲隊列

    SpringBoot整合RabbitMQ處理死信隊列和延遲隊列

    這篇文章將通過示例為大家詳細介紹SpringBoot整合RabbitMQ時如何處理死信隊列和延遲隊列,文中的示例代碼講解詳細,需要的可以參考一下
    2022-05-05
  • Java?Web關鍵字填空示例詳解

    Java?Web關鍵字填空示例詳解

    最近在工作中使用了java?web,發(fā)現有些難度,下面這篇文章主要給大家介紹了關于Java?Web關鍵字填空的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 實例講解Java中random.nextInt()與Math.random()的基礎用法

    實例講解Java中random.nextInt()與Math.random()的基礎用法

    今天小編就為大家分享一篇關于實例講解Java中random.nextInt()與Math.random()的基礎用法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論