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

关于Azure AD Graph $filter中any语法及c:c部分的技术问询

关于Azure AD Graph中$filter的any语法解释

你观察得太对了!这里的c:c eq 'smtp:Mary@Contoso.com'就是Lambda表达式的写法,专门用来处理多值属性的过滤逻辑,咱们拆解一下这个语法:

  • 第一个c是自定义的迭代变量名——你可以把它换成任何合法的名称(比如addr、item都没问题),它代表多值属性proxyAddresses集合里的每一个元素。
  • 中间的冒号:是语法分隔符,用来区分“迭代变量定义”和“条件判断”两部分。
  • 冒号后面的c就是引用前面定义的迭代变量,跟着的eq 'smtp:Mary@Contoso.com'就是具体的过滤条件——意思是检查proxyAddresses集合里是否存在任意一个元素符合这个等式。

放到你的示例里,整个$filter的逻辑就是:

查找用户主体名等于Mary@Contoso.com,或者proxyAddresses列表中包含smtp:Mary@Contoso.com这个地址的用户

再给你举个扩展例子,比如要筛选proxyAddresses里所有以smtp:开头的用户,就可以这么写:

$filter=proxyAddresses/any(a: a startswith 'smtp:')

这里把迭代变量换成了a,完全不影响功能,核心就是用迭代变量遍历多值属性的每一项,再判断是否符合条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:49:28