2014-10-05 98 views
1

我很想用dcJs将Meteor数据(mongoDb)可视化。但是,我无法找到关于此主题的许多信息。用dcJs显示mongoDb(流星)

我使用Meteor重新创建了http://www.codeproject.com/Articles/697043/Making-Dashboards-with-Dc-js-Part-2-Graphing

如果不调用的MongoDB,

var data = [ 
    {_id: "iD1", date: "12/27/2012", http_404: 2, http_200: 190, http_302: 100}, 
    {_id: "iD2", date: "12/28/2012", http_404: 2, http_200: 10, http_302: 100}, 
    {_id: "iD3", date: "12/29/2012", http_404: 1, http_200: 300, http_302: 200}, 
    {_id: "iD4", date: "12/30/2012", http_404: 2, http_200: 90, http_302: 0}, 
    {_id: "iD5", date: "12/31/2012", http_404: 2, http_200: 90, http_302: 0}, 
    {_id: "iD6", date: "01/01/2013", http_404: 2, http_200: 90, http_302: 0}, 
    {_id: "iD7", date: "01/02/2013", http_404: 1, http_200: 10, http_302: 1}, 
    {_id: "iD8", date: "01/03/2013", http_404: 2, http_200: 90, http_302: 0}, 
    {_id: "iD9", date: "01/04/2013", http_404: 2, http_200: 90, http_302: 0}, 
    {_id: "iD10", date: "01/05/2013", http_404: 2, http_200: 90, http_302: 0}, 
    {_id: "iD11", date: "01/06/2013", http_404: 2, http_200: 200, http_302: 1}, 
    {_id: "iD12", date: "01/07/2013", http_404: 1, http_200: 200, http_302: 100} 
    ]; 

结果是工作的罚款。

enter image description here

通过插入和MongoDB的呼叫数据,失败了。

enter image description here

不知道什么在这里失踪。

希望得到建议。谢谢!

回答

1

我怀疑错误是来自下面的代码触发:

var minDate = dateDim.bottom(1)[0].date; 
var maxDate = dateDim.top(1)[0].date; 

这是可能的,你的模板之前的数据已经从数据库加载呈现回调被解雇。

可能解决这将是把最简单的方法if语句:

if (Dichas.find().count() !== 0) { 
    ... all of the code that depends on there being data 
} 
+0

这将是一个容易得多,如果你贴在GitHub上的工作程序调试代码。 – stubailo 2014-10-05 07:08:01

+0

非常感谢!正如您所指出的,数据在模板呈现之前不会被加载。解决方案是在呈现模板之前加载数据1,而不是在同一时间!我将在hackpad上进行更新:-) – 2014-10-05 07:11:38

+0

请不要在有人回复后删除您的评论,将所有信息保留在此处以使其他人遇到同一问题时可以看到它,这很有礼貌。 – stubailo 2014-10-05 07:15:46