Я изучаю Mongodb и пытаюсь реализовать штабелированные диаграммы из Mongodb. Я изо всех сил пытаюсь отобразить данные в соответствии с документом highcharts. Это то, что я сделал до сих пор:Mongodb + Stacked Highcharts
MongoDB документ:
{
"_id" : ObjectId("576a.....b"),
"to: "Jane",
"mode" : "Open"
}
{
"_id" : ObjectId("576a.....c"),
"to: "Jane",
"mode" : "Closed"
}
{
"_id" : ObjectId("576a.....d"),
"to: "Smith",
"mode" : "Open"
}
MongoDB агрегат:
db.collection.aggregate([
{
$group : {
_id : {"to" : "$to", "mode": "$mode"},
y : {$sum : 1}
}
}, {
$project : {
"to" : "$_id.to",
"mode" : "$_id.mode",
"_id" : 0,
"y" : "$y"
}
}, {
$group : {
_id : {"to" : "$to" },
items : {$push : {item : "$mode", qty: "$y"}}
}
}
])
Выход я получил:
[{
"_id" : {
"to" : "Jane"
},
"items" : [{
"item" : "Open",
"qty" : 1
}, {
"item" : "Closed",
"qty" : 1
}]
}, {
"_id" : {
"to" : "Smith"
},
"items" : [{
"item" : "Open",
"qty" : 1
}]
}
}]
Вместо этого я хочу следующий вывод для отображения Highcharts:
categories = ["Jane","Smith"]
series = [{
name : 'Open',
data: [1,1] //1 -open jane, 1- open smith
}, {
name : 'Closed',
data : [1,0] //1 - closed jane, 0- closed smith
}]
Любая идея, как получить этот вывод? Благодаря!
Любой, кто может мне помочь с агрегацией MongoDB, чтобы получить ожидаемый результат? – nair
Невозможно получить результат с 'categories =' и 'series =' Но вы можете создать описанную структуру, используя методы 'map' или' forEach'. https://docs.mongodb.com/manual/reference/method/cursor.map/ – AstraSerg