我想知道什麼是最好的方式來做到以下幾點。需要顯示來自Mongodb數據的圖表
我存儲了一個人在Mongodb中所做的日誌數據,如日誌
{
"date":"01-01-2002T08:20:30",
"task":"contact-lead",
"user":"username"
}
我需要做的是算其中的那一天做了多少任務,並把它們放在一個graph like Highstock。
我想知道什麼是最好的方式來做到以下幾點。需要顯示來自Mongodb數據的圖表
我存儲了一個人在Mongodb中所做的日誌數據,如日誌
{
"date":"01-01-2002T08:20:30",
"task":"contact-lead",
"user":"username"
}
我需要做的是算其中的那一天做了多少任務,並把它們放在一個graph like Highstock。
命令波紋管將彙總/計數,每天的任務數:
db.col.group({
$keyf : function(doc) {
return { "day" : doc.date.getFullYear() + "/" + (doc.date.getMonth()+1) + "/" + doc.date.getDate() };
},
initial: {count:0},
reduce: function(obj, prev) { prev.count++; }
})
然後你只格式化如果需要的話,並將其發送到highcharts API,但要小心,因爲如果你有大量的數據這可能會很慢。
另一種選擇是使用MapReduce並定期更新聚合集合並將其用作圖形的來源。
使用像PHP或Python這樣的服務器端腳本來使用mongodb查詢來聚合數據。
如果您需要查找在過去30天內完成的任務數量,執行30個查詢並不是一個好主意,但您必須使用mongodb的'group by'等效項,該技術被稱爲'map reduce'。
然後你可以根據需要通過你的圖表庫Highcharts(或者你也可以嘗試jqplot.com基於jQuery的圖表)以JSON呈現圖表數據在網頁上使用PHP/Python的/ XML格式。