mongodb 分组统计 aggregate

第一步 建立文档集合

/* 1 */
{
    "_id" : ObjectId("593a6cd071be36e5191ea614"),
    "id" : "dasdyy12e1e8128asdasjd",
    "deviceId" : "saaaaaaaaaa",
    "sn" : "sasasa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a9385560d3d34b1f9ceccd5aafb58c4c",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 2 */
{
    "_id" : "593a6cd071be36e5191ea61432",
    "deviceId" : "saaa1aaaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a9385560d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 3 */
{
    "_id" : "593a6cd071be36e5191ea611432",
    "deviceId" : "saaa1aaa1aaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a9385560d3d34b11f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 4 */
{
    "_id" : "593a6cd071b1e36e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 5 */
{
    "_id" : "593a6cd071b1e236e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R2000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 6 */
{
    "_id" : "593a6cd071b1e36e51191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R2000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 7 */
{
    "_id" : "593a6cd071b1e36e5191ea161432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 8 */
{
    "_id" : "593a6cd071b1e361e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 9 */
{
    "_id" : "593a6cd0711b1e36e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "M1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 10 */
{
    "_id" : "593a6cd071b11e36e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "M1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}


第二步 先分组查询

db.device_statistics.aggregate([
{$group:{_id:"$deviceModel",num:{$sum:1}}}
]);


第三步 选取显示的字段列

db.device_statistics.aggregate([
{$group:{_id:"$deviceModel",num:{$sum:1}}},
{$project:{deviceModel:"$_id",num:1}}
]);


第四步 排除不需要的列
db.device_statistics.aggregate([
{$group:{_id:"$deviceModel",num:{$sum:1}}},
{$project:{_id:0,deviceModel:"$_id",num:1}}
]);

猜你喜欢

转载自annan211.iteye.com/blog/2379151