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);

 

Aggregation agg = newAggregation(
  group("author").count().as("count").first("author").as("name"),
  project("name","count"),
  sort(Direction.DESC, "count"),
  match(Criteria.where("count").gt(0))
);
AggregationResults<ArticleResult> results = mongoTemplate.aggregate(agg, "article_info", ArticleResult.class);
List<ArticleResult> tagCount = results.getMappedResults();
for (ArticleResult studentResult : tagCount) {
    System.out.println(studentResult.getName() + "\t" + studentResult.getCount());
} 
List<DBObject> pipeline = new ArrayList<DBObject>();
BasicDBObject group = new BasicDBObject();
group.put("$group", new  BasicDBObject("_id","$author")
     .append("count", new  BasicDBObject("$sum",1))
     .append("name", new BasicDBObject("$first","$author")));

BasicDBObject project = new BasicDBObject();
project.put("$project", new  BasicDBObject("name",1)
       .append("count", 1).append("_id", 0));
pipeline.add(group);
pipeline.add(project);
AggregationOutput output = mongoTemplate.getCollection("article_info").aggregate(pipeline);
Iterable<DBObject> iterable = output.results();
for (DBObject dbObject : iterable) {
     System.out.println(dbObject);
} 

 

posted @ 2022-11-23 15:58  扰扰  阅读(65)  评论(0编辑  收藏  举报