为了保持一致性,我们需要在调用Loopback apis时使用REST URL样式语法(而不是JSON样式语法)。但是,我们很难构建包含'和'和'或'运算符的复杂'where'过滤器。似乎没有办法对混合条件逻辑进行分组。例如,我们如何使用REST语法创建此SQL语句的等效项:
SELECT * FROM Customer WHERE (type='retail' OR type='nonprofit') AND terms='monthly'
例如,这不起作用:
/api/customer?filter[where][or][0][type]=retail&filter[where][or][1][type]=nonprofit&filter[where][and][2][terms]=monthly
答案 0 :(得分:0)
尝试如下所示:
/api/customer?filter={
"where": {
"or": [
{"type":"retail"},
{"type":"nonprofit"},
"and": [{"terms":"monthly}]
]
}
}
在“更复杂的示例”中看看Where filter
答案 1 :(得分:0)
我正在尝试解决类似的问题。看起来您很接近,但我相信 and
实际上是顶级比较,并且您正在编写查询,就像 or
是。所以也许..
/api/customer?filter[where][and][0][or][0][type]=retail&filter[where][and][0][or][1][type]=nonprofit&filter[where][and][1][terms]=monthly
我无法确认这一点,因为我没有可以测试它的正常运行的本地环境。让我们知道它是否有效。谢谢!
更新:这个问题好像已经有人回答了。 https://github.com/strongloop/loopback/issues/3017 BLUF,在环回中是不可能的。使用字符串化 JSON 选项。