首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DreamFactory API中进行复杂过滤

如何在DreamFactory API中进行复杂过滤
EN

Stack Overflow用户
提问于 2014-06-10 23:19:37
回答 1查看 1.4K关注 0票数 0

我正在考虑在REST中使用DreamFactory。我有一个名为“tags”的表,它有一个名为“lat”的拼图,一个名为“lon”的表,用于存储在“db”中的位置的纬度和经度。

问题是,我需要能够将一个纬度和经度以及一个distance传递给我的服务调用,并过滤结果只返回行where,位置是<=,距离我提供的纬度和经度。

我的SQL命令有点生疏,但如下所示:

代码语言:javascript
复制
SELECT  *,   3956 * 2 * ASIN(SQRT( POWER(SIN((42.347109 - abs(tags.lat)) * pi()/180 / 2),2) + 
COS(42.347109 * pi()/180 ) * COS(  abs (lat) *  pi()/180) * POWER(SIN((-71.075589 – tags.lon) *  
pi()/180 / 2), 2) ))   as distance FROM tags having distance <  2;

有人有做这种过滤器的经验吗?尤其是对DreamFactory?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-12 18:27:20

听起来,您需要在运行时对表中的全部记录执行距离计算。因此,从性能的角度来看,您可能希望数据库使用存储过程进行此计算。有关此方法的更多信息,请参见这篇文章。

latitude/longitude find nearest latitude/longitude - complex sql or complex calculation

触发服务器端事件的存储过程很快就会出现在DreamFactory路线图上(不是在6月中旬的1.6版中,而是在7月的下一个版本中)。该特性将允许您从客户端发出REST调用,该调用将触发DreamFactory运行您的存储过程,并将正确的JSON (或XML)格式的记录返回给客户机。

DreamFactory目前支持MySQL、Postgres和Server,因此只要您将其中一个关系数据库用于存储过程,存储过程方法就能工作(Oracle和DB2也在路线图上)。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24152381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档