подсчитать внутренний массив мангуста - PullRequest
0 голосов
/ 19 октября 2018

Я хочу сделать подсчет массива.Это моя модель

modelDetail.aggregate([
            {
                $group: {
                    _id: '$main_section.dept',  
                    count: {$sum: 'first_array.second_array.main_data'}
                }
            }
        ], function (err, result) {
                if (err) {
                    //next(err);
                    console.log(err);
                } else {
                    console.log(JSON.stringify(result));
                    res.json(result);
                }
        });

Это показывает 0 для всех результатов.Выходные данные ниже

[{"_id":"design","count":0},
{"_id":"training","count":0},
{"_id":"forecast","count":0},
{"_id":"internal audit","count":0},
{"_id":"research","count":0}]

Я хотел получить счетчик всех данных

Это моя схема

var userSchema = mongoose.Schema({
    main_section        :{
        dept            : String
    },

    first_array :[{//
        floor           : String,
        second_array            :[{//3rd level
            name                : String,//4th level
            date            : String
        }]
    }]
});

this is the data in the json

{ "_id" : "5bb39baf40f87f17f01734f8",
    "main_section" : {
        "dept" : "design"
    }, 
    "first_array" : [{ "_id" : "5bb39baf40f87f17f01734fc",  "floor" : "2nd floor" ,
        "second_array" : [
            { "_id" : "5bc102f6dff41a0e844dd2b7", "name" : "Blake Tyson", "date" : "2018-10-12T00:00:00Z" }, 
            { "_id" : "5bc102fddff41a0e844dd2bb", "name" : "Meagan Shawn", "date" : "2018-10-12T00:00:00Z" }, 
            { "_id" : "5bc1044dbba8b31ed42e7408", "name" : "Stephen Stone", "date" : "2018-10-12T00:00:00Z" }
        ]
    }]
},
{ "_id" : "5bb39baf40f87f17f01734f8",
    "main_section" : {
        "dept" : "training"
    }, 
    "first_array" : [{ "_id" : "5bb39baf40f87f17f01734fc",  "floor" : "1st floor",
        "second_array" : [
            { "_id" : "5bc102f6dff41a0e844dd2b7", "name" : "Micheal Harrison", "date" : "2018-10-12T00:00:00Z" }, 
            { "_id" : "5bc102fddff41a0e844dd2bb", "name" : "Favour Reality", "date" : "2018-10-12T00:00:00Z" }, 
            { "_id" : "5bc1044dbba8b31ed42e7108", "name" : "Gift Myers", "date" : "2018-10-12T00:00:00Z" }, 
            { "_id" : "5bc1044dbba8b31ed42e71a1", "name" : "Drake Hills", "date" : "2018-10-12T00:00:00Z" }, 
            { "_id" : "5bc1044dbba8b31ed42e74c2", "name" : "Hashtan Priest", "date" : "2018-10-12T00:00:00Z" }
        ]
    }]
},
{ "_id" : "5b98987f08925c0f5cd86780", 
    "main_section" : {
        "dept" : "forecast"
    }, 
    "first_array" : [{ "_id" : "5b98987f08925c0f5cd86784", "floor" : "4th floor",
        "second_array" : [ ]
    }]
},
{ "_id" : "5b98187f08924c0f5ad86790", 
    "main_section" : {
        "dept" : "internal audit"
    }, 
    "first_array" : [{ "_id" : "5b98987f08925c0f5cd86784", "floor" : "4th floor",
        "second_array" : [ ] 
    }]
},
{ "_id" : "5b98187f08924c0f5ad86790", 
    "main_section" : {
        "dept" : "research"
    }, 
    "first_array" : [{ "_id" : "5b98987f08925c0f5cd86784", "floor" : "4th floor",
        "second_array" : [ ] 
    }]
}

В основном я надеялся сделать этопусть каждый массив выдает общее количество элементов в массиве за секунду вместе с основным разделом, поэтому, например, дизайн вывел бы 3, обучение вывел бы 5, прогноз вывел бы 0, внутренний аудит вывел бы 0, исследование вывело бы 0

Так, любая помощь очень ценится!

...