• mongodb mongotemplate聚合


    1.group by并且计算总数

      @Test
        public void insertTest() {
            //测试数据
            //insertTestData();
            Aggregation agg = Aggregation.newAggregation(
                    //Aggregation.match(Criteria.where("groupId").is(5)),
                    Aggregation.group("groupId").count().as("total"), 
                    Aggregation.project("total").and("groupId").previousOperation(),            
                    Aggregation.sort(Sort.DEFAULT_DIRECTION, "total"));
            List<StaCount> list = mongoTemplate.aggregate(agg, "currentUser", StaCount.class).getMappedResults();
            for(StaCount count : list) {
                System.out.println(count.getGroupId() + ":" + count.getTotal());
            }
      }
    如果要带其他字段,将红字变为
    Aggregation.group("groupId","groupName"...),并将project的and部分去掉即可;
    
    

     2.Crieria的使用,注意andOperator和orOperator的用法

    Aggregation agg = Aggregation.newAggregation(

        Aggregation.match(new Criteria()

                .andOperator(Criteria.where("onlineTime").gt(new Date()))

                .orOperator( Criteria.where("offlineTime").gt(new Date())

        ,Criteria.where("offlineTime").exists(false) ))

     3.Query的排序和分页

    Query query = new Query(Criteria.where(ReportField.GROUP_ID).in(groupIdList));
            query.with(new Sort(Direction.DESC, ReportField.ID));
            query.skip(lastId).limit(limit);
  • 相关阅读:
    LoadLibrary And GetProcAddress And FreeLibrary
    Preprocessor Directives
    Pragma Directives
    How to use Union in c++?
    WhiteSpace
    Export Class and Struct
    Two Ways To Export from a DLL
    Know more about the organization of solution and project
    Cygwin
    二叉树及其应用
  • 原文地址:https://www.cnblogs.com/guochunyi/p/5315943.html
Copyright © 2020-2023  润新知