在使用OData查询时,是否有方法使用嵌套数组项的计数进行筛选?

在使用OData查询时,是否有方法使用嵌套数组项的计数进行筛选?,odata,microsoft-graph-api,microsoft-graph-calendar,Odata,Microsoft Graph Api,Microsoft Graph Calendar,我正在使用Microsoft Graph从outlook获取日历事件。我想筛选出与会者计数为0的项目。(从逻辑上讲,这意味着时间被自己阻塞了) 我知道有一个$count参数将返回项目的计数。但是,在List CalendarView响应中,我不是在计算日历项目的数量,而是在计算每个日历项目中的与会者数量。事实上,使用基于它的不相等(ne)过滤器 { "value": [ { "originalStartTimeZone": "originalStartTimeZone-v

我正在使用Microsoft Graph从outlook获取日历事件。我想筛选出与会者计数为0的项目。(从逻辑上讲,这意味着时间被自己阻塞了)

我知道有一个$count参数将返回项目的计数。但是,在List CalendarView响应中,我不是在计算日历项目的数量,而是在计算每个日历项目中的与会者数量。事实上,使用基于它的不相等(ne)过滤器

{
  "value": [
    {
      "originalStartTimeZone": "originalStartTimeZone-value",
      "originalEndTimeZone": "originalEndTimeZone-value",
      "iCalUId": "iCalUId-value",
      "reminderMinutesBeforeStart": 99,
      "isReminderOn": true,
      "attendees":[
            {
                "type":"required",
                "status":{
                    "response":"none",
                    "time":"0001-01-01T00:00:00Z"
                },
                "emailAddress":{
                    "name":"Samantha Booth",
                    "address":"samanthab@a830edad905084922E17020313.onmicrosoft.com"
                }
            },
            {
                "type":"required",
                "status":{
                    "response":"none",
                    "time":"0001-01-01T00:00:00Z"
                },
                "emailAddress":{
                    "name":"Dana Swope",
                    "address":"danas@a830edad905084922E17020313.onmicrosoft.com"
                }
            }
        ]
    }
  ]
}
我想特别过滤掉“与会者”数组大小为0的任何事件项


使用OData查询参数是否可行?

似乎不支持对与会者进行筛选属性,有关详细信息,请参见示例。但可以考虑以下方法:

a) 介绍一个将公开有关
与会者的摘要信息(标记事件是否包含与会者或与会者人数)的

更新所有现有事件:

PATCH https://graph.microsoft.com/v1.0/me/events/{event-id}
Content-Type: application/json
{
  "singleValueExtendedProperties": [
      {
         "id":"String {66f5a359-4659-4830-9070-00047ec6ac6e} Name ContainsAttendes",
         "value":"1"
      }
    ]
}
b) 现在可以像这样过滤事件:

https://graph.microsoft.com/beta/me/events?$filter=singleValueExtendedProperties/Any(ep: ep/id eq 'String {66f5a359-4659-4830-9070-00047ec6ac6e} Name ContainsAttendes' and ep/value eq '1')
假设
ContainsAttendes=1
对应于有一个或多个参与者的事件