gpt4 book ai didi

Azure Graph API 按数组值过滤

转载 作者:行者123 更新时间:2023-12-03 19:22:39 25 4
gpt4 key购买 nike

我正在尝试对我的 Azure B2C Active Directory 用户执行查询。

到目前为止,使用以下查询一切正常:

https://graph.windows.net/myTentant/users?$filter=
startswith(displayName,'test')%20
or%20startswith(givenName,'test')%20
or%20startswith(surname,'test')%20
or%20startswith(mail,'test')%20
or%20startswith(userPrincipalName,'test')
&api-version=1.6

问题是,这些属性只是像这样的简单值:

"displayName: "testValue",
"givenName": "testValue",
"displayName: "testValue",
"surname": "testValue",
"mail: "testValue",
"userPrincipalName": "testValue",

就我而言,我需要再使用一个语句,其中我需要检查一个数组是否像其他数组一样包含“test”。这个数组看起来像这样:

        "signInNames": [
{
"type": "emailAddress",
"value": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7a0e1f090e3a171b131654191517" rel="noreferrer noopener nofollow">[email protected]</a>"
}, {
"type": "emailAddress",
"value": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e692839592d4a68b878f8ac885898b" rel="noreferrer noopener nofollow">[email protected]</a>"
}
]

我已经在官方搜索了documentation但没有运气......有什么想法吗?

最佳答案

理论上,我们应该使用以下格式来判断该值是否以“test”开头。

GET https://graph.windows.net/myorganization/users?$filter=signInNames/any(c:startswith(c/value, 'test'))

不幸的是,它会显示错误:value 仅支持 equals-match。不支持 PrefixMatch

目前任何 Microsoft Graph 资源都不支持 contains 字符串运算符。所以我们也不能使用 contains

需要使用equal来查找精确匹配的数据:

GET https://graph.windows.net/myorganization/users?$filter=signInNames/any(c:c/value eq '***')

这不是一个解决方案。但似乎没有办法满足您的需求。

也许您可以查询所有的signInNames并在代码中处理它们。

关于Azure Graph API 按数组值过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58937662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com