2013-04-06 48 views
0

我正在研究D3可视化,幸运的是已经取得了一些进展。但是,我遇到了一个问题......说实话,我不确定它是一个MongoDB问题还是一个D3问题。你看,我试图从一组传感器点(我的JSON对象包含时间戳,光线,温度,湿度和运动检测级别或每个数据点)制作一系列图形。但是,我的传感器每8秒将数据上传到我的MongoDB数据库。所以,如果我查询MongoDB数据库只有一天的数据......我得到了10,800个数据点。更糟糕的是,如果我要求提供一个月的数据,我会被324,000个数据点淹没。我的问题是,当处理超过1000个点时,我的d3可视化变慢了(我正在用四个不同的图形来显示数据,每个图形都使用一个画笔来选择图形上的某个域。限制我试图查看的数据量?使用MongoDB可以更好地完成这项工作吗(所以基本上过滤我查询的数据,并且只根据我试图查询的时间值的大小来获取每个第n个数据点) 。还是有更好的方法?一旦我检索了整个数据集,我应该尝试使用D3过滤数据吗?减少需要处理的点数的最佳方法是什么?提前致谢。用MongoDB和D3减少大数据集

回答

0

MongoDB是在过滤伟大如果你真的只需要该数据的一个子集,指定在find查询 - 这会限制时间的子集,或者如果你是聪明只得到数据每小时或类似的第一分钟。

或者,你可以从字面上减少数据出来使用aggregation framework的MongoDB的量。这可以用来得到部分的总和或平均值或相似。