rest - OData - 在同一字段上使用多个条件缩短过滤器查询
问题描述
我正在尝试执行相当长的 OData 过滤器来检索满足多个条件的实体集合。
作为一个简单的解决方案,我目前正在做这样的事情:
$filter=(name eq 'A' or name eq 'B' or name eq 'C') and (address eq 'addr1' or address eq 'addr2')
从示例中,我定位到 2 个字段:“名称”和“地址”。对于这两个字段,我都通过一个(可能很长的)合格值列表进行过滤。
虽然提供的查询已经有效,但实际上存在一个限制,即整个 API 调用长度的字符限制(大约 8000 个字符)。如果用例扩展,查询长度很可能会超过字符限制。
我尝试过这样的事情来稍微截断查询:
$filter=(name eq 'A' or 'B' or 'C') ...
它不起作用(语法错误),但我想知道是否有更好的方法来构造查询,以便长度可以更短?
解决方案
您正在寻找in
运营商
$filter=name in ('A', 'B', 'C')
推荐阅读
- javascript - 动画文本异步范围问题
- c# - 如何调用 Azure HTTP 触发器函数
- c++ - 跨类共享数据
- flutter - 通过 git clone 获取 Flutter SDK
- javascript - Trigger() 或 Change() 或 Click() 问题来定位那些具有您想要的特定值的按钮
- c# - Jetbrains Rider - 未找到通用 Windows 平台 SDK
- html - CSS3:box-shadow 过渡不适用于伪类
- java - 生成排除下限的随机数
- c++ - 为什么 C++20 范围库有自己的命名空间?
- aws-lambda - 从 getInitialProps 请求 /api 文件夹