在环回4中一起过滤“或”和“与”

时间:2019-12-27 10:50:48

标签: rest filter strongloop loopback

我正在使用回送4,并尝试通过rest api一起使用过滤器[and]和[or]。我有这样的桌子

Items

我想要做的是show only items which has cond1 = 0 and cond2 = 0 and (cond3 = 1 or cond3 = 2 or cond3 = 3)

json就是这样

{
  "and": [
      {
        "cond1": 0
      },
      {
        "cond2": 0
      },
      {
        "or": [
          {
            "cond3":1
          },
          {
            "cond3":2
          },
          {
            "cond3":3
          }
        ]
     }
  ]
}

这是我的剩余api过滤器

filter[where][and][0][cond1]=0&filter[where][and][1][cond2]=0&filter[where][and][2][or][0][cond3]=1&&filter[where][and][2][or][1][cond3]=2&&filter[where][and][2][or][2][cond3]=3

我发现了类似的帖子here,而我所做的看起来与Ebrahim Pasbani的答案相似。

但是没有得到这个结果

Items

我要这个

Items

,这意味着[and][2][or][0]语法被环回理解为[neq]缺失。我曾尝试询问周围的人,但看起来其他人也遇到了同样的问题,但最终都没有解决。我将不胜感激,但有可能提供一些解释。

先感谢

1 个答案:

答案 0 :(得分:0)

找到了回送电报组的答案。

显然,您可以在rest api上写入json字符串(请确保带有符号翻译)。所以答案是:

filter={%22%where%22:{%22and%22:[{%22or%22:[{%22cond3%22:1}{%22cond3%22:2},{%22cond3%22:3}]}],%22cond1%22:0,%22cond2%22:0}}

注意:URL字符串中为%22 =>“。

还有瞧... 结果完全符合我的预期。希望这能为遇到同样问题的任何人解答。