【发布时间】:2017-08-01 14:58:23
【问题描述】:
我是否遗漏了某些内容,或者是否真的无法使用 SharePoint REST API 根据字段和另一个字段的内容过滤列表?
常量值起作用:
?$select=Title&$filter=Title eq 'Hello world'
或
?$select=Title&$filter='Hello world' eq Title
但不是
?$select=Title&$filter=Title eq Title
也没有
?$select=Title&$filter=Title eq OtherField
也没有
?$select=Title&$filter=substringof(Title, Title)
由于过滤有限,REST 实际上毫无用处。
有没有办法使用变量或引用其他字段?
编辑: 我刚刚检查过,显然这是 SharePoint 中的一个限制。 它也不能使用 CAML,显然所有的比较都必须是 Field 到 ConstantValue。
也不行:
<Query>
<Where><Eq><FieldRef Name="Title" /><FieldRef Name="Title" /></Eq></Where>
</Query>
知道如何解决这个问题吗?查找,加入?在 REST 中?谢谢。
【问题讨论】:
-
SharePoint 中的限制?我从未见过 REST API 可以满足您的要求。显而易见的方法是获取您需要的数据并使用您编写的一些过滤器函数进行过滤。当然,它需要几行额外的代码,但仍然只需要一个 API 调用。
-
现在想想,做这样的事情至少需要一个Join。从我想使用它的上下文来看,它看起来微不足道(一种允许基于某些条件进行过滤的自定义字段类型,不幸的是它不会先进行临时提取)。
-
为什么要加入?只需一次调用即可获取数据,然后在您的代码中过滤掉
Field1 == Field2所在的数据,就像您在问题中想要做的那样。仅当您想获取List1.Field == List2.Field的内容时,您需要至少进行两次单独的调用。
标签: rest sharepoint filter field