Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果未找到文档,则从远程API获取MongoDB_Javascript_Mongodb - Fatal编程技术网

Javascript 如果未找到文档,则从远程API获取MongoDB

Javascript 如果未找到文档,则从远程API获取MongoDB,javascript,mongodb,Javascript,Mongodb,我们正在从头开始重建当前的客户门户。我们当前的门户有一堆cron作业,这些作业同步我们WHMCS计费系统中的所有客户、联系人和发票记录,但这是一种非常可怕的方式。我们的一位开发人员建议使用MongoDB来缓存通过WHMCS API提取的数据,这将很好地工作,但他还建议他记得已经设置了MongoDB,这样,如果find by ID没有生成页面,它将触发MongoDB上的javascript例程,并进行API调用以获取所需的记录 这听起来太棒了,但是在谷歌搜索了好几个小时并阅读了MongoDB文档之

我们正在从头开始重建当前的客户门户。我们当前的门户有一堆cron作业,这些作业同步我们WHMCS计费系统中的所有客户、联系人和发票记录,但这是一种非常可怕的方式。我们的一位开发人员建议使用MongoDB来缓存通过WHMCS API提取的数据,这将很好地工作,但他还建议他记得已经设置了MongoDB,这样,如果find by ID没有生成页面,它将触发MongoDB上的javascript例程,并进行API调用以获取所需的记录

这听起来太棒了,但是在谷歌搜索了好几个小时并阅读了MongoDB文档之后,我一辈子都找不到在MongoDB方面实现这一点的方法。我们可以很容易地从PHP端完成这项工作(特别是因为我们使用的是Yii2),但从MongoDB端完成这项工作将是一个非常干净的解决方案


希望可能有人遇到过这样的用例,并能提供一个从MongoDB实现的示例?

这听起来像是应该在MongoDB之上实现,而不是在MongoDB之上实现。这是一个好的观点。你刚刚给了我一个灵感我们已经在通过帮助对象访问WHMC。。我们只需将缓存调用直接添加到对象中——如果它在缓存中,我们将返回缓存对象。否则,获取、缓存和返回。虽然不如通过mongo实现自动化那么酷,但也可以!我认为这要酷得多:下一个开发人员(可能是几个月后的您)将在他期望的地方找到缓存代码it@VK2TDG这对你来说怎么样?您的缓存API帮助对象是否在Git anywhere中?我也在做类似的事情,我想先从本地MongoDB获取一个文档,如果找不到,就从API获取。@MichaelBlackburn我们实际上在WHMCS MySQL数据库的几乎所有表中添加了触发器,将表名、主键和操作(插入/更新/删除)弹出到“队列”表中。然后,我们至少每秒轮询该表一次,并获取所有操作以及相关数据(因此插入tblhosting意味着我们从tblhosting中选择id=queue.pkid),然后将其推送到JMS队列中。然后,我们在JMS队列上有一个侦听器,它将所有更新作为更新以“upsert=true”(如果是delete,则为delete)的形式推送到mongodb中。这很有效。