我使用的是SharePoint REST API,它类似于OData,但目前我甚至不知道标准的OData方式。我想过滤不以某种字符串模式开头的项目。如何在OData中编写'not'运算符?所有引用列出'和'和'或'运算符和'ne'运算符,但我找不到'not'。
以下任何一项工作都没有:
A)
not startswith(field, 'pattern')
b)中
startswith(field, 'pattern') ne true // Yes I know there is no 'true' boolean literal.
答案 0 :(得分:2)
即使Use OData query operations in SharePoint REST requests的图表说明startswith
运算符的正确语法是:
filter=startswith(PropertyName, 'String') Eq Boolean
它似乎唯一接受的语法是:
filter=startswith(PropertyName, 'String')
例如,请求:
/_vti_bin/listdata.svc/Pages?$filter=startswith(Title,'SharePoint') eq false
返回Title
不以SharePoint
但使用_api
服务端点
/_api/Web/Lists/getByTitle('Pages')/items?$filter=startswith(Title,'SharePoint') eq false
返回The query is not valid
例外。
<强>解决方案强>
利用listdata.svc
端点,因为完全支持 OData specification中指定的startswith
运算符的语法。