APIGEE查询与条件不匹配的数据

时间:2014-05-26 15:19:02

标签: apigee

我需要从BaaS数据存储中获取所有与条件

不匹配的记录

我使用查询字符串,如:

https://api.usergrid.com/<org>/<app>/<collection>?ql=location within 10 of 30.494697,50.463509 and Partnership eq 'Reject' 

工作正常(我不会在ql之后对字符串进行编码)。

但任何尝试放置&#34;不是&#34;在此查询中导致&#34;无法解析查询&#34;。 此外,我尝试使用&lt;&gt ;,!=,NE和一些变体&#34; not&#34;

如何配置查询以获取范围内的所有记录但是伙伴关系不等于“拒绝”#39; ?

2 个答案:

答案 0 :(得分:0)

您应该可以使用以下语法:

https://api.usergrid.com/<org>/<app>/<collection>?ql=location within 10 of 30.494697,50.463509 and not Partnership eq 'Reject' 

请注意,not运算符位于表达式之前(如docs所示)。

答案 1 :(得分:0)

不支持操作,但不具备性能,因为它需要完整扫描。当与地理定位呼叫结合使用时,它可能会非常慢。我们正在努力在Usergrid核心中改进它。

话虽如此,一般情况下,如果可能的话,反转呼叫要好得多。例如,不是在case为true时添加属性,而是始终将属性写入每个新实体(即使为false),然后在case为true时编辑该属性。

而不是这样做:

POST {   &#39;名称&#39;:&#39;弗雷德&#39; }

PUT {   &#39;名称&#39;:&#39;弗雷德&#39;   &#39; had_cactus_cooler&#39;:真 }

这样做: POST {   &#39;名称&#39;:&#39;弗雷德&#39;   &#39; had_cactus_cooler&#39;:&#39;无&#39; }

PUT {   &#39;名称&#39;:&#39;弗雷德&#39;   &#39; had_cactus_cooler&#39;:&#39;是&#39; }

一般情况下,尝试按照您想要的方式放置数据。由于您事先知道要查询此属性是否存在,因此只需添加它,但使用负值。当条件成立时更新它。