mongodb group statistics aggregate

The first step is to create a document collection

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

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

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

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

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

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

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

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

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

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


The second step is to group the query

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


Step 3 Select the displayed field column

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


Step 4 Exclude unwanted columns
db.device_statistics.aggregate([
{$group:{_id:"$deviceModel",num:{$sum:1}}},
{$project:{_id:0,deviceModel:"$_id",num:1}}
]);

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326260389&siteId=291194637