首页 > 解决方案 > 使用 String 类型的元数据值查询 Orion

问题描述

我正在尝试查询 Orion 版本 2.2.0-next,以便返回与不同字符串的元数据值匹配的记录。

我的 JSON 看起来像这样:

"AttributeName": {
        "type": "String",
        "value": "Some Value",
        "metadata": {
            "AttributeMeta": {
                "type": "String",
                "value": "Some Other Value"
            }
        }
    }

我查询 Orion 如下: http://myip:1026/v2/entities?type=myType&mq=AttributeName.AttributeMeta==Some%20Other%20Value&options=count

不幸的是,退货是空的。

有什么想法、建议吗?

编辑

PHP中的实体创建代码:

$data[] = array("id" => (mktime() + $i)."_$client", "type" => "myType", "datetime" => array("type" => "DateTime", "value" => date("Y-m-d\TH:i:s", mktime($ho, $mi, $se, $mo, $da, $ye))), "Parameter1" => array("type" => "String", "value" => (string)$parameter1), "Parameter2" => array("type" => "Float", "value" => (float)$Parameter2), "Parameter3" => array("type" => "String", "value" => (string)$parameter3, "metadata" => array("Parameter3Meta" => array("type" => "String", "value" => "$parameter3meta"))), "location" => array("type" => "geo:point", "value" => "$lat, $lon"), "range" => array("type" => "Float", "value" => (float)$range), "Parameter4" => array("type" => "String", "value" => (string)$parameter4)); 
curl_setopt($ch, CURLOPT_URL, "http://$ip/v2/entities");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data[$i]));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("fiware-service: $tenant", "fiware-servicepath: /$subtenant", "Content-Type: application/json"));
curl_setopt($ch, CURLOPT_PORT, 1026);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 400);
$response = curl_exec($ch);

编辑 2:在上面的查询中使用了两个标题:fiware-service:tenant 和 fiware-servicepath:/subtenant

标签: metadatafiware-orion

解决方案


尝试删除 'type=myType'。目前尚不清楚您尝试使用查询提取的实体类型是什么。


推荐阅读