json - Mongo DB中的数据库结构
问题描述
我有一个以 JSON 格式提供数据的第三方 Web 服务,结构如下:
我正在创建一个调度程序来抓取这些记录并将它们保存在 MongoDB 集合中。
我需要来自父 JSON 的一些键,例如“query”、“countyrName”等参数,以及一些来自带有内部 JSON 的“结果”。
我想在 html 表中显示数据,并想使用 jquery 插件 Datatables 添加排序和分页。
如何构建数据,以免对性能产生任何负面影响?如何进一步提高性能?
解决方案
如果您想在一个平面表格中显示所有数据,您应该相应地构建您的文档。这不会影响性能。
如果要使用带有排序和分页的 jquery Datatables 显示所有数据,则必须将所有 22,000 个文档发送到客户端。我怀疑这会以两种方式使整个应用程序变得非常缓慢:
- 这会增加页面的加载时间,因为必须一次加载大量数据
- 排序会很慢,因为浏览器必须对 javascript 中的所有 22,000 个条目进行排序。
所以你应该在数据库中进行排序和分页(这就是它的用途)并且只获取请求的数据。为了加快数据库中的排序,您应该在要排序的字段上创建索引。
如果您想保留 Datatables 插件,您至少应该按照您最初希望显示的方式对数据进行排序,并在该字段上添加索引。
推荐阅读
- reactjs - this.props.xxx 不是函数
- r - 将两个粘贴日期拆分为 R 中的两个不同行
- sql - 如果行具有不同的值,则选择 max(date) 不起作用,我只想获取日期最高的行
- r - 条件语句:根据某个输入改变数据列表中的一个变量
- javascript - Tensorflow.js 节点未找到后端
- javascript - nodemon 在终端中显示未定义
- php - 如何从视图上传文件中导入代码点火器 3.1 中的执行 .sql 文件
- html - TailwindCSS 组内的链接:焦点元素失败,因为单击事件被阻止
- ruby-on-rails - Rails 覆盖 activerecord 模型获取器,以便更轻松地查询与该模型的关联
- flutter - 迁移到 Flutter 2 失败