首页 > 解决方案 > OData lambda,any,带逻辑运算符,and 不起作用

问题描述

我想过滤同时具有“蓝色类别”和“绿色类别”的 Outlook电子邮件。但是,以下请求返回空结果。

但是,这个问题似乎只发生在个人 Outlook 帐户上。我尝试使用另一个 Office 365 帐户,并且该帐户工作正常。

有谁知道我是否错过了什么?

要求

GET https://graph.microsoft.com/v1.0/me/messages?$filter=categories/any(a:a eq 'Green category') and categories/any(a:a eq 'Blue category')

回复

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('calvin.kloudless%40outlook.com')/messages",
    "value": []
}

我确认我收到了一些具有上述两个类别的消息。

https://graph.microsoft.com/v1.0/me/messages?$filter=categories/any(a:a eq 'Blue category')&$select=categories

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('calvin.kloudless%40outlook.com')/messages(categories)",
    "value": [
        {
            "@odata.etag": "W/\"CQAAABYAAACY6nZ17sf0Srd6ntecsx9MAADWDaV9\"",
            "id": "AQMkADAwATNiZmYAZC0yNDNjLTQ2YzctMDACLTAwCgBGAAAD93y4_KZIZkiUUt1tg8r_0QcAmOp2de7H9Eq3ep7XnLMfTAAAAgEJAAAAmOp2de7H9Eq3ep7XnLMfTAAAANXR_hoAAAA=",
            "categories": [
                "Blue category",
                "Green category"
            ]
        },
        {
            "@odata.etag": "W/\"CQAAABYAAACY6nZ17sf0Srd6ntecsx9MAADWDaUU\"",
            "id": "AQMkADAwATNiZmYAZC0yNDNjLTQ2YzctMDACLTAwCgBGAAAD93y4_KZIZkiUUt1tg8r_0QcAmOp2de7H9Eq3ep7XnLMfTAAAAgEMAAAAmOp2de7H9Eq3ep7XnLMfTAAAANXR4nQAAAA=",
            "categories": [
                "Blue category",
                "Green category"
            ]
        },
        {
            "@odata.etag": "W/\"CQAAABYAAACY6nZ17sf0Srd6ntecsx9MAADWDaUW\"",
            "id": "AQMkADAwATNiZmYAZC0yNDNjLTQ2YzctMDACLTAwCgBGAAAD93y4_KZIZkiUUt1tg8r_0QcAmOp2de7H9Eq3ep7XnLMfTAAAAgEJAAAAmOp2de7H9Eq3ep7XnLMfTAAAANXR_hgAAAA=",
            "categories": [
                "Blue category",
                "Green category"
            ]
        },
        {
            "@odata.etag": "W/\"CQAAABYAAACY6nZ17sf0Srd6ntecsx9MAADWDaUY\"",
            "id": "AQMkADAwATNiZmYAZC0yNDNjLTQ2YzctMDACLTAwCgBGAAAD93y4_KZIZkiUUt1tg8r_0QcAmOp2de7H9Eq3ep7XnLMfTAAAAgEMAAAAmOp2de7H9Eq3ep7XnLMfTAAAANXR4nMAAAA=",
            "categories": [
                "Blue category",
                "Green category"
            ]
        },
        {
            "@odata.etag": "W/\"CQAAABYAAACY6nZ17sf0Srd6ntecsx9MAADWDaUa\"",
            "id": "AQMkADAwATNiZmYAZC0yNDNjLTQ2YzctMDACLTAwCgBGAAAD93y4_KZIZkiUUt1tg8r_0QcAmOp2de7H9Eq3ep7XnLMfTAAAAgEJAAAAmOp2de7H9Eq3ep7XnLMfTAAAANXR_hcAAAA=",
            "categories": [
                "Blue category",
                "Green category"
            ]
        },
        {
            "@odata.etag": "W/\"CQAAABYAAACY6nZ17sf0Srd6ntecsx9MAADWDaRv\"",
            "id": "AQMkADAwATNiZmYAZC0yNDNjLTQ2YzctMDACLTAwCgBGAAAD93y4_KZIZkiUUt1tg8r_0QcAmOp2de7H9Eq3ep7XnLMfTAAAAgEMAAAAmOp2de7H9Eq3ep7XnLMfTAAAANXR4nIAAAA=",
            "categories": [
                "Blue category"
            ]
        },
        {
            "@odata.etag": "W/\"CQAAABYAAACY6nZ17sf0Srd6ntecsx9MAADWDaRx\"",
            "id": "AQMkADAwATNiZmYAZC0yNDNjLTQ2YzctMDACLTAwCgBGAAAD93y4_KZIZkiUUt1tg8r_0QcAmOp2de7H9Eq3ep7XnLMfTAAAAgEJAAAAmOp2de7H9Eq3ep7XnLMfTAAAANXR_hYAAAA=",
            "categories": [
                "Blue category"
            ]
        }
    ]
}

标签: microsoft-graph-apiodata

解决方案


请使用'&'符号作为运算符,不要使用'and'。使用下面的 HTTP 调用。

https://graph.microsoft.com/v1.0/me/messages?$filter=categories/any(a:a eq 'Green category')&categories/any(a:a eq 'Blue category')

它对我有用,如下所示。

在此处输入图像描述


推荐阅读