gpt4 book ai didi

c# - 使用字符串方法查询Iothub设备孪生标签

转载 作者:行者123 更新时间:2023-12-05 03:51:11 24 4
gpt4 key购买 nike

我想获取以“测试”一词开头的设备列表。或者类似的方法,获取tags.email 以“test”开头的所有设备。我已经阅读了文档,但根据我的发现,它仅支持完全匹配的查询,并且还支持少数运算符,例如(>,<,!=,<>等..)。

有人可以帮我解决这个问题吗?我想要一些查询,例如,

从设备中选择 * WHERE deviceId LIKE 'test%';

从设备中选择 * WHERE STARTS_WITH(tags.email, 'test')

最佳答案

doc详细描述了用于在 IoT 中心查询设备的类似 SQL 语句集。 IoT 中心当前不支持所请求的查询,但是您可以选择一些选项来满足您的要求:

  1. 为每个设备添加tags属性,例如:

    "tags": { "environment": "test" }

    并且根据tags.environment的值,您可以在IoT Hub端进行查询,例如:

    SELECT deviceId FROM devices  WHERE tags.environment IN ['test', 'dev']

    SELECT deviceId FROM devices WHERE tags.environment NIN ['test']
  2. 此选项基于 IoT 中心的预查询​​设备,然后使用 LINQ 查询来获取最终查询结果,例如根据您的情况:

     SELECT deviceId, tags FROM devices

您还可以使用 WHERE 语句来最小化预查询步骤中的设备集。

获得此预查询结果后,您可以使用 LINQ 丰富语句根据 deviceId 和/或标签属性选择设备。

使用选项#2,可以使用以下示例:

SELECT deviceId, tags.email FROM devices WHERE is_defined(tags.email)

然后基于 LINQ,您可以在客户端完成查询。

关于c# - 使用字符串方法查询Iothub设备孪生标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63100670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com