Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mongodb:如何以可控的方式对大型数据集进行采样_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript mongodb:如何以可控的方式对大型数据集进行采样

Javascript mongodb:如何以可控的方式对大型数据集进行采样,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在尝试生成用于延迟的数据集与用于绘图的时间数据集 数据集有数千到数百万个条目,如下所示: [{“时间戳”:,“延迟轴”:},…} 查询和生成图形对于完整数据集的性能很差,原因很明显。类似于加载大型JPEG,首先对粗略的快速图像进行采样,然后渲染完整图像 如何通过mongodb查询有效地实现这一点,同时提供数据集的粗略但准确的时间表示。我的想法是将文档组织到时间桶中,每个时间桶覆盖一个恒定的时间范围,迭代返回第一、第二、第三个结果,直到所有结果完成加载。但是,有一个不简单的或不确定的问题以直观

我正在尝试生成用于延迟的数据集与用于绘图的时间数据集

数据集有数千到数百万个条目,如下所示: [{“时间戳”:,“延迟轴”:},…}

查询和生成图形对于完整数据集的性能很差,原因很明显。类似于加载大型JPEG,首先对粗略的快速图像进行采样,然后渲染完整图像

如何通过mongodb查询有效地实现这一点,同时提供数据集的粗略但准确的时间表示。我的想法是将文档组织到时间桶中,每个时间桶覆盖一个恒定的时间范围,迭代返回第一、第二、第三个结果,直到所有结果完成加载。但是,有一个不简单的或不确定的问题以直观的方式高效地实现此原型

有人能就这种情况提供指导/解决方案/建议吗

谢谢

螺母注意事项: 我们试图实现的一个非常小的数据集的快速示例是: 我们喜欢动态地关注特定区域。我们的目标是获得良好的表示,但避免加载所有数据集,同时具有合理的性能


DB:mongodb Server:node.js客户端:angular+nvd3指令(概念验证,可能会切换到d3.js以获得更多控制).

性能障碍在哪里:在Node.js处理端,还是mongodb查询本身?是因为传递给Node的结果集太大,还是mongodb在查询结果时动作太慢?还有,为什么要在图形上显示数千个数据点(没有足够的水平像素来显示那么多数据点)?也许你想做的是平均(或平均/最小/最大)<代码> ListCyyOx轴<代码>在给定的时间段内。考虑到这是一个D3特定的问题,或者这个问题应该用你正在做的D3的注释来更新。你是用所有的数据点来渲染一个全分辨率向量SVG吗?如果是的话,你怎么能期望客户端能够和那些DAT一起工作?A点?我仍然会缩小你的分辨率和/或平均值,只发送D3中特定视图所需的信息。MunGDB和NoDEJs都非常快地考虑数据量。性能瓶颈主要是在D3.JS(图形生成)中。.目前mongodb会在20秒多一点的时间内返回结果,节点会在10秒内传递到客户端,但因为我想快速预览或快照图形,所以我不需要整个数据集。我想要一个好的“表示”100毫秒内的数据。巧妙地使用索引可能会减少mongodb需要通过的数据。类似于db.collection.find({i:{$mod:[10000,0]})的东西如果可以使用索引就非常完美了