Javascript “放在哪里?”;“很多”;在node.JS上的JS中显示数据的数组/文件/其他位置

Javascript “放在哪里?”;“很多”;在node.JS上的JS中显示数据的数组/文件/其他位置,javascript,node.js,api,Javascript,Node.js,Api,这可能是一个“愚蠢”的问题,但我第一次处理了大量的数据。 我想做的是:查询 问题:当涉及到搜索/过滤时,API非常不灵活。。。我可以自己查询每个国家/指标,但我会打很多电话。所以我想一次下载关于一个国家或指标的所有信息,然后在机器上对它们进行排序。 我的问题:在哪里/如何存储数据?我可以简单地将它放入一个数组中吗?我需要担心大小吗?我应该写入一个临时json文件吗?或者你有别的想法吗 谢谢你的时间 例如: 20个国家,15项指标 如果我自己查询每个国家,我将生成20*15个API调用,如果我为一

这可能是一个“愚蠢”的问题,但我第一次处理了大量的数据。 我想做的是:查询 问题:当涉及到搜索/过滤时,API非常不灵活。。。我可以自己查询每个国家/指标,但我会打很多电话。所以我想一次下载关于一个国家或指标的所有信息,然后在机器上对它们进行排序。 我的问题:在哪里/如何存储数据?我可以简单地将它放入一个数组中吗?我需要担心大小吗?我应该写入一个临时json文件吗?或者你有别的想法吗

谢谢你的时间

例如: 20个国家,15项指标


如果我自己查询每个国家,我将生成20*15个API调用,如果我为一个指标调用所有国家,它将生成15个API调用。我会得到很多“垃圾”数据:/

我建议将其存储在nosql数据库中,因为您将使用JSON,并从中进行查询

mongodb非常“节点友好”-有本机驱动程序-
或mongoose

如果满足以下条件,则可以将RAM中的数据保存在适当的数据结构(数组或对象)中:

  • 数据只需要临时(在一个特定操作期间)或在服务器重新启动时可以轻松地再次检索
  • 如果您有足够的可用RAM用于node.js进程,以便将数据存储在RAM中。在典型的服务器环境中,可能有超过GB的RAM可用。我不建议所有这些都使用,但您可以轻松地将其中的100MB用于数据存储
  • 将其保存在RAM中可能比将其存储在磁盘上更快、更容易与之交互。显然,如果数据在RAM中,则在服务器重新启动时不会持久化

    如果数据是长期需要的,并且您只想获取一次,然后反复访问数据,即使您的服务器重新启动,如果数据超过数百MB,或者如果您的服务器环境没有很多RAM,然后,您需要将数据写入一个适当的数据库,在那里它将持久化,并且您可以根据需要查询它


    如果您不知道数据的大小,可以编写代码将其临时放入数组/对象中,并在加载数据后观察node.js进程的内存使用情况。

    如果数据发生更改,则存储来自不受控制的外部源的数据会带来保持数据同步的复杂性。如果不了解您的用例或API,就很难提出建议。例如,您确定需要整个数据集吗?是否有一种方法可以根据您已有的信息(用户输入等)过滤数据?

    IndexedDB-有一个包装器。考虑使用它,同时它可能比连接任何外部数据库更快,或者将JSON写入文件。如果数据不太多,我会将其存储在JSON文件中,并使用fs.read和fs.write进行处理。如果您希望经常这样做,则最好将数据加载到服务器上的数据库中,该数据库已设置为具有搜索功能,然后改为访问该数据库。然后每隔几个小时用世界银行的新数据刷新数据库。