如何显示大量的报表数据客户端(mongoDB,JS)

Pet*_*ohn 2 javascript reporting datatables mongodb node.js

由于我们在应用程序中收集的数据的性质,它必须允许用户能够搜索1,000,000多行数据,并尽快接收客户端的结果.

我们使用各种技术,目前正在试验文档存储引擎MongoDB.我们基本上以我们希望在客户端显示它的方式将报告数据存储在Mongo中.

但是,这是我想要依靠你的经验的地方.我们使用了一些报告表插件,例如datatables.net,但是当客户端请求可能匹配100,000多条记录的数据时,将数据传递到客户端的延迟可能需要花费一分多钟才能将JSON从服务器导出到客户.

我已经尝试通过一次只向客户端发送1000个结果来过滤结果集,但是如果用户决定对列进行排序怎么办?必须再次执行整个请求,并将第一个1000个结果加载到客户端.

但是如果客户选择在列中搜索,则必须再次重新获取结果.当所有数据都已加载到客户端时,所有这些问题都不存在.

所以基本上我的问题是,你如何有效和快速地允许客户搜索和操作大型数据集,但是将结果传递给客户端的方式不要求每一个结果都要一次性发送,因此保持客户端尽可能轻量级?

我确定必须有一些MongoDB的前端数据表类型插件,可能通过node.js进行直接JSON通信,但我找不到任何东西!

谢谢你的帮助.

Ian*_*cer 5

听起来你的问题在于你试图通过客户端的大量数据.什么屏幕显示1000行数据?

使用起始索引,排序顺序和页面大小发出请求,并按该顺序仅获取那么多数据并将其返回给客户端.

以jqGrid为例,将其作为客户端网格,将分页和排序信息传递回服务器,一次只检索一个页面值.使用MongoDB的jqGrid和正确的索引非常快.