<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    MONGODB SPRING DISTINCT

    SPRING 框架下 如果要做去重,在數據量大的時候會爆ERROR,可改用如下 寫法:

        private boolean needReorderCheck(String requestId) {
            boolean result = false;
    //        try(MongoCursor<String> mongoCursor = 
    //                mongoTemplate.getCollection(mongoTemplate.getCollectionName(AccountNumProductLineIndex.class))
    //                             .distinct(KEY, Filters.eq(REQUEST_ID, requestId), String.class)
    //                             .iterator()
    //                )
            try(MongoCursor<Document> mongoCursor = 
                    mongoTemplate.getCollection(mongoTemplate.getCollectionName(AccountNumProductLineIndex.class))
                                 .aggregate(
                                     Arrays.asList(
                                        Aggregates.project(
                                                        Projections.fields(
                                                                        Projections.excludeId(),
                                                                       Projections.include(KEY),
                                                                       Projections.include(REQUEST_ID)
                                                                    )
                                                   ),
                                        Aggregates.match(Filters.eq(REQUEST_ID, requestId)),
                                        Aggregates.group("$" + KEY)
                                     )
                                  )
                                 .allowDiskUse(true)
                                 .iterator();
            )
            {
                String key = null;
                boolean breakMe = false;
                LOGGER.info("needReorderCheck.key --> start");
                while(mongoCursor.hasNext()) {
                    if(breakMe) {
                        mongoCursor.close();
                        break;
                    }
                    Document keyDocument = mongoCursor.next();
                    key = keyDocument.getString("_id");
    //                key = mongoCursor.next().getString(KEY);
    //                LOGGER.info("needReorderCheck.keyDocument --> {}, key --> {}", keyDocument, key);
                    try(MongoCursor<Document> indexMongoCursor = 
                            mongoTemplate.getCollection(AccountNumProductLineIndex.COLLECTION_NAME)
                                            .find(Filters.and(Filters.eq(REQUEST_ID, requestId), Filters.eq(KEY, key)))
                                            .iterator()
                    )
                    {
                        int preIndex = -1, currentIndex = -1;
                        Document preIndexDocument = null, currentIndexDocument;
                        while(indexMongoCursor.hasNext()) {
                            currentIndexDocument = indexMongoCursor.next();
    //                        System.out.println(currentIndexDocument.toJson());
                            if(preIndexDocument != null) {
                                 currentIndex = currentIndexDocument.getInteger(INDEX);
                                 preIndex = preIndexDocument.getInteger(INDEX);
                                 if(currentIndex - preIndex > 1) {
                                    indexMongoCursor.close();
                                    breakMe = true;
                                    result = true;
                                    break;
                                }
                            }
                            preIndexDocument = currentIndexDocument;
                        }
                    }
                }
            }
            
            return result;
        }

    posted on 2022-10-18 10:22 paulwong 閱讀(204) 評論(0)  編輯  收藏 所屬分類: SPRING 、MONGODB 、SPRING BOOT

    主站蜘蛛池模板: 国产精品无码免费视频二三区 | 国产精品免费综合一区视频| 精品一区二区三区无码免费直播| 国产亚洲av人片在线观看| 免费一级不卡毛片| 国产精品高清视亚洲精品| 亚洲一区二区三区无码影院| 99久久精品免费视频| 国产精品手机在线亚洲| 久久久无码精品亚洲日韩蜜桃| 毛色毛片免费观看| 9久久免费国产精品特黄| 久久精品国产亚洲αv忘忧草| 亚洲精品网站在线观看不卡无广告| 久久综合给合久久国产免费| 综合一区自拍亚洲综合图区 | 亚洲国产精品张柏芝在线观看| 四虎亚洲国产成人久久精品| 99久久免费观看| 一级做a爱过程免费视| 亚洲国产激情在线一区| 亚洲gv猛男gv无码男同短文| 日本高清色本免费现在观看| 182tv免费观看在线视频| 国产精品永久免费视频| 亚洲女子高潮不断爆白浆| 亚洲AV中文无码字幕色三| 亚洲精品成a人在线观看| 毛片免费观看的视频| 免费黄色电影在线观看| 一级一黄在线观看视频免费| 亚洲熟妇少妇任你躁在线观看| 日韩亚洲人成在线综合日本| 免费国产成人午夜私人影视| 一个人免费观看视频www| 性xxxx视频免费播放直播 | 性感美女视频在线观看免费精品| 国产一级淫片a免费播放口| 午夜不卡AV免费| 国产精品亚洲专区无码WEB| 亚洲1234区乱码|