最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

    /**
     * 多個(gè)查詢條件同時(shí)滿足
     */
    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);

        // 單獨(dú)的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() {
        // 相當(dāng)于:
        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);
    }

    /**
     * 數(shù)字類型,比較查詢 >
     */
    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);
    }

    /**
     * 數(shù)字類型,比較查詢 <
     */
    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);
    }

    /**
     * 查詢總數(shù)
     */
    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);
    }

    /**
     * 查詢總數(shù)
     */
    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來(lái)銜接
        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);
    }

    /**
     * 分頁(yè)查詢
     */
    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()方法來(lái)跳過(guò)指定數(shù)量的數(shù)據(jù)
        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 查詢嵌套對(duì)象(嵌套對(duì)象屬性為條件)

    @ApiOperation("測(cè)試查詢")
    @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;
//        //封裝對(duì)象列表查詢條件
//        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. 拆分內(nèi)嵌文檔
//        UnwindOperation unwind = Aggregation.unwind("historyList");
//        commonOperations.add(unwind);
//        //4. 指定查詢子文檔
//        MatchOperation match2 = Aggregation.match(
//                Criteria.where("historyList.hh").is("2"));
//        commonOperations.add(match2);
//
//        //創(chuàng)建管道查詢對(duì)象
//        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);
//        }
    }

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

相關(guān)文章

  • 詳解java安全編碼指南之可見(jiàn)性和原子性

    詳解java安全編碼指南之可見(jiàn)性和原子性

    java類中會(huì)定義很多變量,有類變量也有實(shí)例變量,這些變量在訪問(wèn)的過(guò)程中,會(huì)遇到一些可見(jiàn)性和原子性的問(wèn)題。這里我們來(lái)詳細(xì)了解一下怎么避免這些問(wèn)題。
    2021-06-06
  • SpringBoot中各個(gè)層級(jí)結(jié)構(gòu)的具體實(shí)現(xiàn)

    SpringBoot中各個(gè)層級(jí)結(jié)構(gòu)的具體實(shí)現(xiàn)

    在SpringBoot項(xiàng)目中,常常會(huì)把代碼文件放入不同的包中,本文主要介紹了SpringBoot中各個(gè)層級(jí)結(jié)構(gòu)的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • SpringBoot項(xiàng)目中java -jar xxx.jar沒(méi)有主清單屬性的解決方法

    SpringBoot項(xiàng)目中java -jar xxx.jar沒(méi)有主清單屬性的解決方法

    這篇文章主要給大家介紹了SpringBoot項(xiàng)目中java -jar xxx.jar沒(méi)有主清單的解決方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • JAVA截取字符串的幾種常用方法

    JAVA截取字符串的幾種常用方法

    這篇文章主要給大家介紹了關(guān)于JAVA截取字符串的幾種常用方法, 在處理字符串的過(guò)程中有很多情況下會(huì)遇到需要截取字符串的情況,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • java追加寫(xiě)入txt文件的方法總結(jié)

    java追加寫(xiě)入txt文件的方法總結(jié)

    在本篇文章里我們給大家整理了關(guān)于java如何追加寫(xiě)入txt文件的方法和代碼,需要的朋友們可以參考下。
    2020-02-02
  • Springboot處理CORS跨域請(qǐng)求的三種方法

    Springboot處理CORS跨域請(qǐng)求的三種方法

    這篇文章主要介紹了Springboot處理CORS跨域請(qǐng)求的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java愛(ài)心代碼完整示例(脫單必備)

    java愛(ài)心代碼完整示例(脫單必備)

    最近看到個(gè)好玩的,就是用代碼實(shí)現(xiàn)愛(ài)心的形狀,對(duì)于不懂編程的人來(lái)說(shuō),這是一個(gè)很好的玩的東西,這篇文章主要給大家介紹了關(guān)于java愛(ài)心代碼的相關(guān)資料,需要的朋友可以參考下
    2023-07-07
  • shiro 與 SpringMVC的整合完美示例

    shiro 與 SpringMVC的整合完美示例

    shiro可以直接和spring整合,但是這樣需要單獨(dú)配置spring用于整合shiro,在配置springmvc,接下來(lái)通過(guò)實(shí)例代碼給大家介紹shiro 整合 SpringMVC 的方法,感興趣的朋友一起看看吧
    2021-08-08
  • Java通過(guò)Modbus簡(jiǎn)單實(shí)現(xiàn)數(shù)采的示例代碼

    Java通過(guò)Modbus簡(jiǎn)單實(shí)現(xiàn)數(shù)采的示例代碼

    本文介紹了Java通過(guò)Modbus簡(jiǎn)單實(shí)現(xiàn)數(shù)采,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • javaWeb使用驗(yàn)證碼實(shí)現(xiàn)簡(jiǎn)單登錄

    javaWeb使用驗(yàn)證碼實(shí)現(xiàn)簡(jiǎn)單登錄

    這篇文章主要為大家詳細(xì)介紹了javaWeb使用驗(yàn)證碼實(shí)現(xiàn)簡(jiǎn)單登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評(píng)論

南安市| 石门县| 淳化县| 固镇县| 敦化市| 河津市| 思茅市| 徐汇区| 龙胜| 金阳县| 格尔木市| 郑州市| 司法| 龙游县| 浪卡子县| 南通市| 泗水县| 磐安县| 漠河县| 娱乐| 张北县| 秦皇岛市| 新巴尔虎左旗| 科尔| 聂荣县| 米林县| 方山县| 寿宁县| 东至县| 安化县| 阜阳市| 临江市| 彭泽县| 辉南县| 赤峰市| 常山县| 图片| 枣阳市| 栖霞市| 闻喜县| 进贤县|