1. 程式人生 > >Spring-date操作Mongodb分組統計

Spring-date操作Mongodb分組統計

Java使用Spring提供的Spring-data-mongodb來進行操作Mongodb進行分組、統計等操作示例。

        // 返回的欄位
        ProjectionOperation projectionOperation = Aggregation.project("user_isp_tag", "ad_title", "ad_id", "push_url", "clicksum");

        // 日期條件
        Criteria operator = Criteria.where("ad_id").ne("").andOperator(
                Criteria.where("click_time").gte(startDate),
                Criteria.where("click_time").lt(endDate)
        );
        MatchOperation matchOperation = Aggregation.match(operator);

        // 分組操作,並對每個廣告的總條數進行統計
        GroupOperation groupOperation = Aggregation.group("ad_id", "ad_title").sum("clicknum").as("clicksum");
        // 分頁操作,控制分頁從哪開始
        SkipOperation skipOperation = Aggregation.skip(pageQuery.getPageQuery_start());
        // 分頁操作,控制分頁取得記錄數
        LimitOperation limitOperation = Aggregation.limit(pageQuery.getPageQuery_pageSize());
        // 組合條件
        Aggregation aggregation = Aggregation.newAggregation(projectionOperation, matchOperation, groupOperation, skipOperation, limitOperation);
        // 執行操作
        AggregationResults<AddspAnalyse> aggregationResults = this.mongoTemplate.aggregate(aggregation, "collectionName", AddspAnalyse.class);