检查数组是否包含 Cumulocity REST 中的值查询 API

Check if an array contains a value Query in Cumulocity REST API

我有一个类型为“ABC”的托管对象,其片段为“A”,其子结构如下:

{
    "type": "ABC",
    "A": {
        "value": ["B", "C"]
    }
}

如何创建一个 filter/query 来检查“A”片段是否在“值”数组中包含“C”?

查询失败:

{{url}}/inventory/managedObjects?query=$filter=(type+eq+'ABC'+and+A.value+has+‘C‘)

{
    "error": "inventory/Invalid Data",
    "message": "Find by filter query failed : Query '$filter=(type eq 'ABC' and A.value has ‘C‘)' could not be understood. Please try again.",
    "info": "https://www.cumulocity.com/guides/reference-guide/#error_reporting"
}

Cumulocity doc 关于查询 REST API.

解法: 使用 eq 而不是 has:

{{url}}/inventory/managedObjects?query=$filter=(type+eq+'ABC'+and+A.value+eq+‘C‘)

我找不到来源,但以下内容对我有用并达到预期结果:

{{url}}/inventory/managedObjects?query=$filter=(type+eq+'ABC'+and+A.value+eq+'C')

所以基本上您需要为您的用例使用 eq 运算符。