如何使用REST样式语法在环回中形成复杂的Where过滤器
为了保持一致性,我们需要在调用环回API时使用RESTURL样式的语法(而不是JSON样式的语法)。然而,我们很难构建包含“and”和“and”或“or”运算符的复杂“where”过滤器。似乎没有将混合条件逻辑分组的方法。例如,我们如何使用REST语法创建此SQL语句的等效语句:如何使用REST样式语法在环回中形成复杂的Where过滤器,rest,conditional-statements,loopbackjs,Rest,Conditional Statements,Loopbackjs,为了保持一致性,我们需要在调用环回API时使用RESTURL样式的语法(而不是JSON样式的语法)。然而,我们很难构建包含“and”和“and”或“or”运算符的复杂“where”过滤器。似乎没有将混合条件逻辑分组的方法。例如,我们如何使用REST语法创建此SQL语句的等效语句: SELECT * FROM Customer WHERE (type='retail' OR type='nonprofit') AND terms='monthly' 例如,这不起作用: /api/customer
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
试试这样的方法:
/api/customer?filter={
"where": {
"or": [
{"type":"retail"},
{"type":"nonprofit"},
"and": [{"terms":"monthly}]
]
}
}
看一看“更复杂的例子”我正试图解决一个类似的问题。看起来您非常接近,但我相信
和
实际上是最高级别的比较,您编写查询时就好像或
是。所以也许
/api/customer?filter[where][and][0][or][0][type]=retail&filter[where][and][0][or][1][type]=nonprofit&filter[where][and][1][terms]=monthly
但我无法确认这一点,因为我没有一个可以测试它的运行的本地环境。让我们知道它是否有效。谢谢
更新:看起来这个问题已经得到了回答。BLUF,在环回中是不可能的。使用stringified JSON选项。您找到答案了吗?在同样的事情上有困难。我猜一定是那个?他们只是忽视了这件事。