首页 > 解决方案 > 在 Azure IoT 注册表中按标记值查询时出错

问题描述

我有一个具有以下标签值的设备:

{
  "deviceId": "test",
  "tags": {
    "group": {
      "name": "beta1"
    }
}

当我查询以下内容时:

SELECT * FROM devices WHERE tags.group.name = 'beta1'

我收到以下错误:

There was an error querying devices: BadRequest:{ "Message": "ErrorCode:ArgumentInvalid;BadRequest", "ExceptionMessage": "Tracking ID:c6985322e3014555bc7bcb4892292394-G:9-TimeStamp:10/17/2018 12:22:07" }.

但是,如果我查询不存在的标签,则不会引发错误:

SELECT * FROM devices WHERE tags.foo.bar = 'beta1'

如何查询我的标签值?

标签: azureazure-iot-hub

解决方案


看起来我们不能在设备孪生中使用“组”属性的查询。解决方法是重命名它,例如 _group。

我猜这是一个错误。

更新: 问题已修复:

SELECT * FROM devices WHERE tags.[[group]].name = 'beta1'

更多详细信息:https ://github.com/MicrosoftDocs/azure-docs/issues/17106#issuecomment-433177700


推荐阅读