标准LoopBack应用需支持的复杂/嵌套Where过滤器格式有哪些?
第三个测试用例的正确查询逻辑
你标注??的az条件和顶层其他所有条件为**默认逻辑与(AND)**关系,这是LoopBack where过滤器的核心规则:同一层级下的所有并列条件默认按AND组合。
结合AND运算符优先级高于OR的规则,第三个过滤器对应的完整查询逻辑为:
( ( (a === 1 && x === 'x' && y > 1 && (l === 'l1' || m !== 2)) && (b === 'b' && c < 1) ) || (d === 'd' || e !== 1) ) && az !== 1
你之前前两个测试用例的逻辑推导是正确的,符合优先级规则。
标准LoopBack应用需支持的复杂/嵌套where过滤器格式
所有格式均符合官方约定,规则如下:
- 基础等值条件:直接使用
{属性名: 匹配值}格式,等价于属性值等于匹配值的判断 - 运算符条件:支持
lt/gt/lte/gte/neq/in/nin/regexp等内置运算符,格式为{属性名: {运算符: 匹配值}} - 显式AND条件:使用
{and: [条件1, 条件2, ...]}格式,数组内所有条件全部满足才命中 - 显式OR条件:使用
{or: [条件1, 条件2, ...]}格式,数组内任意一个条件满足即命中 - 无限嵌套组合:
and和or结构可以互相嵌套,比如and数组的子项可以是另一个or对象,反之可无限层级嵌套 - 同层级隐式AND:同一层级下的多个条件(包括基础条件、显式
and结构、显式or结构)默认按逻辑与组合,无需额外声明and
WhereBuilder的输出完全遵循上述规则,你按照上述规则解析传入的where过滤器即可符合LoopBack标准。
内容的提问来源于stack exchange,提问作者Yash
相关产品推荐
相关产品推荐

