英文:
Can't filter list item by Content Type in MS Graph API
问题
我试图通过MS Graph API在搜索SharePoint列表时筛选项目,其中满足某些自定义字段值,并且内容类型不是文件夹。例如:
/sites/mysite.sharepoint.com/lists/test/items?&select=name,contentType,webUrl,id&$expand=driveItem,fields&$filter=fields/MyColumn eq 'HelloWorld' and fields/ContentType ne 'Folder'
我已经对自定义字段和内容类型进行了索引,但仍然收到以下错误:
{
"error": {
"code": "invalidRequest",
"message": "字段'ContentType' 不能在筛选或排序中引用,因为它没有被索引。提供'Prefer: HonorNonIndexedQueriesWarningMayFailRandomly'头部以允许此操作,但请注意,这样的查询可能会在大型列表上失败。"
}
}
我已经使用上述的"Prefer"头部,它确实返回了数据,但似乎不应该在自定义字段已被索引的情况下提供这样的值。我是否遗漏了某些东西,或者MS Graph API中的内容类型列存在兼容性问题?如果存在问题,我如何绕过它,而不必使用"Prefer"头部?
英文:
I am trying to filter items when searching a SharePoint list, via the MS Graph API, where certain custom field values are met, and the content type is not a folder. For example:
/sites/mysite.sharepoint.com/lists/test/items?&select=name,contentType,webUrl,id&$expand=driveItem,fields&$filter=fields/MyColumn eq 'HelloWorld' and fields/ContentType ne 'Folder'
I have both the custom field and Content Type indexed, but I still receive:
{
"error": {
"code": "invalidRequest",
"message": "Field 'ContentType' cannot be referenced in filter or orderby as it is not indexed. Provide the 'Prefer: HonorNonIndexedQueriesWarningMayFailRandomly' header to allow this, but be warned that such queries may fail on large lists."
}
}
I have used the above Prefer header and that does return data, but seems wrong that I have to supply such a value when the column is indexed. Is there something I am missing with this or is there a compatability problem with the Content Type column within the MS Graph API? If there is, how can I work around it without having to use the Prefer header?
答案1
得分: 0
https://graph.microsoft.com/v1.0/sites/{站点 ID}/lists/{列表 ID}/items?$select=name,contentType,webUrl,id&$expand=driveItem,fields&$filter=fields/MyColumn eq 'HelloWorld' and fields/ContentType ne 'Folder'
Prefer: allowthrottleablequeries
英文:
You need to provide the allowthrottleablequeries
preference to execute this query, so you must provide request headers for this endpoint.
https://graph.microsoft.com/v1.0/sites/{site id}/lists/{list id}/items?$select=name,contentType,webUrl,id&$expand=driveItem,fields&$filter=fields/MyColumn eq 'HelloWorld' and fields/ContentType ne 'Folder'
Prefer: allowthrottleablequeries
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论