跳至主要内容

自定义 OData 查询

asset-centric OData 服务数据建模 OData 服务 都支持自定义查询,以筛选属性和检索特定数据集。

自定义查询 URL

Asset-centric OData 服务示例

要对资源类型属性进行筛选:

GET .../{resourceType}/?$filter={Filter}

其中:

  • {resourceType}:资源类型,例如 AssetsTimeSeriesEvents 等。
  • {Filter}OData 筛选表达式。

数据建模 OData 服务示例

要对数据模型中的 view 属性进行筛选:

GET .../{view}/?$filter={Filter}

其中:

  • {view}:数据模型中 view 的名称。
  • {Filter}OData 筛选表达式。

自定义查询示例

简单的等式筛选器

等式筛选器使用 AttributeName eq 'AttributeValue' 格式:

GET .../Assets?$filter=Name eq '23-TE-96116-04'

数据建模筛选

直接应用于数据模型属性 view 的筛选器:

GET .../City?$filter=iso2 eq 'MX'

元数据筛选

对于元数据,对元数据对象内嵌套的属性执行筛选:

GET .../Assets?$filter=MetaData/RES_ID eq '525283'

组合筛选器

GET .../Assets?$filter=MetaData/RES_ID eq '525283' and Name eq '23-TE-96116-04'

在筛选器中使用函数

OData 支持startswithendswithcontains 等函数。

例如,要筛选 ExternalId'Sensor' 开头的时间序列:

GET .../TimeSeries?$filter=startswith(ExternalId,'Sensor')

注意:并非所有函数都支持下推到 CDF。检查特定资源类型的筛选功能。

组合多个查询参数

你可以组合多个查询选项来优化数据检索。

例如,要检索 Name'Pump' 开头的资产,请仅选择 IdName,并按 Name 排序:

GET .../Assets?$filter=startswith(Name,'Pump')&$select=Id,Name&$orderby=Name asc

调试自定义查询

限制

并非所有 OData 函数和功能都受支持。有关支持的功能和限制的详细信息,请参阅单独的服务文档