首页 > 解决方案 > Azure IoT Hub 设备孪生 - 如何在查询中不获取元数据

问题描述

我正在.NET Core 3.0 中开发 Azure IoT Web 应用程序,并使用 Microsoft.Azure.Devices.RegistryManager 来获取设备孪生。但是,我总是会收到与它一起发送的元数据。它占据了设备双胞胎一半以上的大小,我不需要它。当获得一堆设备孪生时,这意味着大量的流量,我想减少它。

我可以在不获取元数据的情况下获取设备孪生吗?

任何人?

任何人?

标签: azureasp.net-coreweb-applicationsazure-iot-hub

解决方案


您可以使用投影查询,因为 IoT 中心提供了一种类似 SQL 的语言来检索有关设备孪生的信息。

例子:

var query = registryManager.CreateQuery("SELECT LastActivityTime FROM devices WHERE status = 'enabled'");
while (query.HasMoreResults)
{
    var page = await query.GetNextAsTwinAsync();
    foreach (var twin in page)
    {
        // do work on twin object
    }
}

此处的更多信息:用于设备和模块孪生、作业和消息路由的 IoT 中心查询语言


推荐阅读