You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Graph API查询文件夹文件时如何按需返回driveItem的listItem属性?

解决Microsoft Graph API中DriveItem展开ListItem并筛选Fields的问题

你遇到的这个不一致情况,核心原因是fields属于listItem的导航属性,而非普通属性——不能直接在listItem的$select里指定,必须对fields单独执行$expand+$select操作。

满足你三个需求的正确查询写法如下:

https://graph.microsoft.com/v1.0/drives/{{drive-id}}/items/{{folder-id}}/children?$select=id&$expand=listItem($select=id;$expand=fields($select=col1,col2))

各部分作用说明:

  • $select=id:仅返回DriveItem的id,实现精简返回的需求
  • $expand=listItem($select=id;...):展开关联的listItem,并仅保留其id属性
  • $expand=fields($select=col1,col2):在listItem的展开逻辑中,进一步展开fields导航属性,同时只筛选你需要的字段(比如示例中的col1、col2)

这个写法会返回完全符合要求的结果:每个DriveItem仅包含id,其关联的listItem仅包含id和指定字段的fields,同时满足:

  1. 通过drive端点获取文件夹子项
  2. 成功展开每个DriveItem的listItem属性
  3. 精准筛选listItem的属性及fields的指定子集

对比你之前的写法,核心差异在于:不能把fields当作listItem的普通属性用$select拉取,必须通过嵌套的$expand=fields(...)来获取这个导航属性的内容——这也是和直接查询list端点的逻辑区别(直接查询list时,fields是顶层导航属性,可直接$expand=fields)。

内容的提问来源于stack exchange,提问作者EduardoCMB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:43:14