zoukankan      html  css  js  c++  java
  • Mongo汇总问题

    1. 数据

    /* 5 */
    {
        "_id" : ObjectId("5902f7ca2b3fe442d60a0946"),
        "code" : "akhbxu2h1s0l",
        "pcode" : "",
        "level" : 1,
        "hasCover" : false,
        "validateNumber" : "1234",
        "validated" : false,
        "firstValidateInfo" : {
            "logId" : "",
            "clientIp" : "",
            "createAt" : ISODate("2017-04-28T08:05:30.005Z"),
            "wxNumber" : "",
            "cityName" : {
                "_id" : "",
                "name" : ""
            },
            "mobile" : ""
        },
        "productId" : "",
        "corpRecords" : [ 
            {
                "corp" : {
                    "_id" : ObjectId("58fc10252b3fe46746a93fbe"),
                    "name" : "udi2"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh34m6bc",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.005Z"),
                        "action" : "Handling",
                        "tag" : "京东"
                    }
                ]
            }, 
            {
                "corp" : {
                    "_id" : "a1",
                    "name" : "北京大光2"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh34h14p",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.005Z"),
                        "action" : "Handling",
                        "tag" : "淘宝"
                    }
                ]
            }, 
            {
                "corp" : {
                    "_id" : "b1",
                    "name" : "北京大光会才3"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh34l3qj",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.005Z"),
                        "action" : "Handling",
                        "tag" : "淘宝"
                    }
                ]
            }
        ],
        "recallInfo" : {
            "_id" : "",
            "name" : ""
        },
        "createAt" : ISODate("2017-04-28T08:05:30.005Z"),
        "corpId" : "58fc10252b3fe46746a93fbe"
    }
    
    /* 6 */
    {
        "_id" : ObjectId("5902f7ca2b3fe442d60a0947"),
        "code" : "b93ib987buaf",
        "pcode" : "",
        "level" : 1,
        "hasCover" : false,
        "validateNumber" : "1234",
        "validated" : false,
        "firstValidateInfo" : {
            "logId" : "",
            "clientIp" : "",
            "createAt" : ISODate("2017-04-28T08:05:30.007Z"),
            "wxNumber" : "",
            "cityName" : {
                "_id" : "",
                "name" : ""
            },
            "mobile" : ""
        },
        "productId" : "",
        "corpRecords" : [ 
            {
                "corp" : {
                    "_id" : ObjectId("58fc10252b3fe46746a93fbe"),
                    "name" : "udi2"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh35zoq0",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.007Z"),
                        "action" : "Handling",
                        "tag" : "当当"
                    }
                ]
            }, 
            {
                "corp" : {
                    "_id" : "a2",
                    "name" : "天津本宏2"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh360z0p",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.007Z"),
                        "action" : "Handling",
                        "tag" : "国美"
                    }
                ]
            }, 
            {
                "corp" : {
                    "_id" : "b3",
                    "name" : "天津本宏腾达3"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh35jtqj",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.007Z"),
                        "action" : "Handling",
                        "tag" : "京东"
                    }
                ]
            }
        ],
        "recallInfo" : {
            "_id" : "",
            "name" : ""
        },
        "createAt" : ISODate("2017-04-28T08:05:30.007Z"),
        "corpId" : "58fc10252b3fe46746a93fbe"
    }
    
    /* 7 */
    {
        "_id" : ObjectId("5902f7ca2b3fe442d60a0948"),
        "code" : "apy9f33v6rrw",
        "pcode" : "",
        "level" : 1,
        "hasCover" : false,
        "validateNumber" : "1234",
        "validated" : false,
        "firstValidateInfo" : {
            "logId" : "",
            "clientIp" : "",
            "createAt" : ISODate("2017-04-28T08:05:30.012Z"),
            "wxNumber" : "",
            "cityName" : {
                "_id" : "",
                "name" : ""
            },
            "mobile" : ""
        },
        "productId" : "",
        "corpRecords" : [ 
            {
                "corp" : {
                    "_id" : ObjectId("58fc10252b3fe46746a93fbe"),
                    "name" : "udi2"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh391n20",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.012Z"),
                        "action" : "Handling",
                        "tag" : "国美"
                    }
                ]
            }, 
            {
                "corp" : {
                    "_id" : "a2",
                    "name" : "天津本宏2"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh38izrd",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.012Z"),
                        "action" : "Handling",
                        "tag" : "京东"
                    }
                ]
            }, 
            {
                "corp" : {
                    "_id" : "b4",
                    "name" : "天津本宏远通3"
                },
                "userRecords" : [ 
                    {
                        "_id" : "u4quh3917mj",
                        "createBy" : {
                            "_id" : "",
                            "name" : ""
                        },
                        "createAt" : ISODate("2017-04-28T08:05:30.012Z"),
                        "action" : "Handling",
                        "tag" : "国美"
                    }
                ]
            }
        ],
        "recallInfo" : {
            "_id" : "",
            "name" : ""
        },
        "createAt" : ISODate("2017-04-28T08:05:30.012Z"),
        "corpId" : "58fc10252b3fe46746a93fbe"
    }
    View Code

    corpRecords表示企业记录信息。每条数据中 corpRecords 数组固定索引的 corp._id 是固定的(也就是说, 企业登记顺序是固定的。) ,corpId == corpRecords.0.corp._id , 这两项保持一致。

    2. 需求

    查询 第每一级的条数。

    如下:

    一级企业, 二级企业,     三级企业,              三级企业总数

    udi2      天津本宏2  天津本宏腾达3        60 

    udi2           天津本宏2       天津本宏远通3         80

    udi2           北京大光2       北京大光会才3         14

    udi2           北京大光2       北京大光大略3         28

    3.解决 

    db.qRCodeInfo.aggregate(
    [
     
            { $match: { "productId":  "" ,corpId:"58fc10252b3fe46746a93fbe" } }
            , {
                $group : { _id: { c1: {$slice: [ "$corpRecords.corp._id", 3 ]} }  ,
                sum:{$sum : 1 } } 
              } 
    ]       
    )
  • 相关阅读:
    计算机网络面试小知识总结(转载)
    williamisnotme@gmail.com
    jdk1,8 HashMap
    Mybatis 为什么不要用二级缓存
    CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
    一级缓存,二级缓存
    mock单测
    java8函数式编程(转载)
    volatile解析
    JVM 技术分享(初级)
  • 原文地址:https://www.cnblogs.com/newsea/p/6782045.html
Copyright © 2011-2022 走看看