Посчитайте все отличные значения от mongodb, а затем отобразите в amcharts - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь получить счетчик каждого отдельного значения из моего mongodb. До сих пор я мог получить отчетливые значения и посчитать его.

Как я могу это сделать:

City       Count
Pasig       22
Manila      12
Pasay       11

Образец документа:

_id:5c1ca770385b472018874073
blood_product_donated:"Whole Blood"
branch:"Pasay"
deferral_type:"none"
deferral_date:"none"

Итак, вот что я сделал:

api.js

router.get('/blooddonationpie', function(req, res) {
      Blooddonation.distinct('branch',function(err, branch) {      
      res.json({ success: true, branch: branch });
      console.log(branch);
   });   
});

контроллер

angular.module('blooddonationControllers', [])
.controller('blooddonationCtrl', function(Blooddonation,$scope) {
var app = this;
function getChart() {

    Blooddonation.getChart().then(function(data) {
        app.branch = data.data.branch; 
        initChart();      
    });
}
function initChart() {
    var data_series = [];

    for(let key in app.branch) {
        data_series.push({
            "donor": app.branch[key],
            "count": 501.9
        });
    }

    var chart = AmCharts.makeChart( "chartdiv", {
        "type": "pie",
        "theme": "none",
        "dataProvider": data_series,
        "valueField": "count",
        "titleField": "donor",
        "balloon":{
            "fixedPosition":true
        },
        "export": {
            "enabled": true
        }
    });
}

Это неправильный вывод:

This is the output:

Как я могу получить счетчик для каждого отдельного значения?Пример Pasig: 21, Pasay: 22 и т. Д.

1 Ответ

0 голосов
/ 21 декабря 2018

Вам нужно $group агрегировать, чтобы получить счетчик каждой ветви

db.col.aggregate([{$group: {_id : "$branch" , count :{$sum:1}}}])
...