在MongoDB中存储和更新API数据

时间:2018-10-12 03:08:19

标签: javascript node.js database mongodb

我正在使用一个Web应用程序,在该应用程序中我已经调用了API,并使用MongoDB存储了数据。这些数据每天都会更新,因此我将需要能够通过单击管理站点中的按钮来每天更新数据。解决此问题的最佳方法是什么?

我不熟悉数据库,所以我不知道最好的方法。我想将数据存储在数据库中的原因是,我可以使用Redux或Context API将其存储,因此当有人转到某个页面时,数据将更快地可用,而不必进行新的API调用(并且浪费API调用)每次有人访问页面时。

我的数据库一次包含大约630个文档。

问题:

我需要更新数据库中的630文档,以匹配来自每天变化的API的630文档,因此我需要弄清楚要查询MongoDB的内容以完成此操作。

2 个答案:

答案 0 :(得分:0)

您可以使用node-schedule

这非常像cron-job。但是在节点应用程序上运行。确保调度程序每隔24小时运行一次,并将此数据库操作放在那里。

  

请注意,Node Schedule是为进程内调度而设计的,即   只要脚本正在运行,计划的作业就只会被触发,并且   执行完成后,时间表将消失。如果你需要   安排即使脚本未运行也将持续存在的作业,   考虑使用实际的cron。

答案 1 :(得分:0)

我最终找到了解决问题的方法。

以前,我一次只更新一个文档,所以我使用了db.collection.update(<query>,<update>)的内容来更新一个文档。我面临的问题是我需要一次更新收藏中的所有文档。因此,通过使用db.collection.remove({}),我可以删除集合中的所有文档,然后使用db.collection.create(myData)添加新的更新数据。