美文网首页
MongoTemplate 分组查询

MongoTemplate 分组查询

作者: 呼呼GO | 来源:发表于2019-05-09 11:27 被阅读0次
    
    @Document
    public class Goods implements Serializable {
    
        @Id
        private String id;
        private String name;
        private String price;
        private String description;
        private String max;
        private String num;
        private String[] pictures;
        private String subMchId;
    
        private String tag;
    
        private List<Info> infos;
    
        public Goods(String id, String name, String price, String description, String max, String num, String[] pictures, String subMchId, String tag, List<Info> infos) {
            this.id = id;
            this.name = name;
            this.price = price;
            this.description = description;
            this.max = max;
            this.num = num;
            this.pictures = pictures;
            this.subMchId = subMchId;
            this.tag = tag;
            this.infos = infos;
        }
    }
    
    
    
    
    import lombok.extern.log4j.Log4j2;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.data.mongodb.core.mapreduce.GroupBy;
    import org.springframework.data.mongodb.core.mapreduce.GroupByResults;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    
    @Log4j2
    @RestController
    public class GoodsController {
        
        @Autowired
        private MongoTemplate mongoTemplate;
        
        @GetMapping(value = {"module"})
        public ResponseEntity<GroupByResults> module() throws Exception {
            GroupBy groupBy = new GroupBy("tag").initialDocument("{ collection: [] }").reduceFunction("function (doc,pre){pre.collection.push({id:doc._id.str,name:doc.name,pictures:doc.pictures});}");
            GroupByResults groupByResults = mongoTemplate.group("goods", groupBy, Goods.class);
            return new ResponseEntity<GroupByResults>(groupByResults, HttpStatus.OK);
        }
    
    }
    
    
    [
        {
            "id":"5cd392bbb53ac62ba8e8593f",
            "name":"苹果",
            "price":"12.99",
            "description":"苹果家庭的低调皇室",
            "max":"5",
            "num":"5",
            "pictures":[],
            "subMchId":"S0000001",
            "tag":"精选水果",
            "infos":null
        },
        {
            "id":"5cd393dcb53ac61810a67b8e",
            "name":"苹果",
            "price":"12.99",
            "description":"苹果家庭的低调皇室",
            "max":"5",
            "num":"5",
            "pictures":[],
            "subMchId":"S0000001",
            "tag":"精选水果",
            "infos":null
        },
        {
            "id":"5cd39512b53ac60b905d8602",
            "name":"苹果",
            "price":"12.99",
            "description":"苹果家庭的低调皇室",
            "max":"5",
            "num":"5",
            "pictures":[],
            "subMchId":"S0000001",
            "tag":"新鲜蔬菜",
            "infos":null
        }
    ]
    
    {
        "rawResults":{
            "retval":[
                {
                    "tag":"精选水果",
                    "collection":[
                        {
                            "id":"5cd392bbb53ac62ba8e8593f",
                            "name":"苹果",
                            "pictures":[]
                        },
                        {
                            "id":"5cd393dcb53ac61810a67b8e",
                            "name":"苹果",
                            "pictures":[]
                        }
                    ]
                },
                {
                    "tag":"新鲜蔬菜",
                    "collection":[
                        {
                            "id":"5cd39512b53ac60b905d8602",
                            "name":"苹果",
                            "pictures":[]
                        }
                    ]
                }
            ],
            "count":3,
            "keys":2,
            "ok":1
        },
        "count":3,
        "keys":2,
        "serverUsed":null
    }
    
    

    相关文章

      网友评论

          本文标题:MongoTemplate 分组查询

          本文链接:https://www.haomeiwen.com/subject/fplmxqtx.html