使用MongoDB和D3减少大数据集

时间:2013-04-06 00:57:29

标签: mongodb d3.js

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

1 个答案:

答案 0 :(得分:0)

Mongodb很擅长过滤。如果您确实只需要数据的子集,请在find查询中指定 - 这可能会限制为时间的子集,或者如果您很聪明,则只获取每小时的第一分钟或类似数据

或者你可以使用aggregation framework从字面上减少来自mongodb的数据量。这可用于获得部分金额或平均值或类似金额。