我正在使用一个Web应用程序,在该应用程序中我已经调用了API,并使用MongoDB存储了数据。这些数据每天都会更新,因此我将需要能够通过单击管理站点中的按钮来每天更新数据。解决此问题的最佳方法是什么?
我不熟悉数据库,所以我不知道最好的方法。我想将数据存储在数据库中的原因是,我可以使用Redux或Context API将其存储,因此当有人转到某个页面时,数据将更快地可用,而不必进行新的API调用(并且浪费API调用)每次有人访问页面时。
我的数据库一次包含大约630个文档。
问题:
我需要更新数据库中的630文档,以匹配来自每天变化的API的630文档,因此我需要弄清楚要查询MongoDB的内容以完成此操作。
答案 0 :(得分:0)
您可以使用node-schedule。
这非常像cron-job。但是在节点应用程序上运行。确保调度程序每隔24小时运行一次,并将此数据库操作放在那里。
请注意,Node Schedule是为进程内调度而设计的,即 只要脚本正在运行,计划的作业就只会被触发,并且 执行完成后,时间表将消失。如果你需要 安排即使脚本未运行也将持续存在的作业, 考虑使用实际的cron。
答案 1 :(得分:0)
我最终找到了解决问题的方法。
以前,我一次只更新一个文档,所以我使用了db.collection.update(<query>,<update>)
的内容来更新一个文档。我面临的问题是我需要一次更新收藏中的所有文档。因此,通过使用db.collection.remove({})
,我可以删除集合中的所有文档,然后使用db.collection.create(myData)
添加新的更新数据。