Cómo usar la cláusula IN en la consulta de ruta del centro iot

Cómo usar la cláusula IN en la consulta de ruta del centro iot

La siguiente consulta no funciona en la consulta de ruta: $cuerpo.Tiempo.Temperatura en ['30','50']

ingrese la descripción de la imagen aquí

Revisé la documentación y la sintaxis parece correcta.

Mostrar la mejor respuesta

la temperatura es de tipo numérico, por lo que la cadena de consulta correcta debe ser $body.Weather.Temperature IN [30, 50], pero después de este cambio, el error de sintaxis aún se genera durante el proceso de guardado. Parece que esto es un error o no se admite en la consulta de rutas.

Operador

IN y NIN (no en) que se utiliza para comprobar si el elemento está o no en las constantes de matriz como ['wired', 'wifi'].

Para su caso, necesita usar el operador de comparación: >= y <= así:

$body.Weather.Temperature >= 30 AND $body.Weather.Temperature <= 50

Para obtener información detallada, puede consultar "Lenguaje de consulta de IoT Hub para dispositivos gemelos, trabajos y enrutamiento de mensajes".

Actualización:

Para seleccionar el valor exacto 30/50, puede usar la siguiente cadena de consulta como solución alternativa.

$body.Weather.Temperature = 30 OR $body.Weather.Temperature = 50

Mi intención es usar el valor exacto, en ese caso quería filtrar solo las temperaturas 30 y 50. Como @roman-kiss comentó anteriormente, si la temperatura fuera un valor de cadena, causaría un error de sintaxis.

@Henrique Perdón por mi malentendido, puedo reproducir su problema. Actualizo mi respuesta agregando una solución alternativa que puede verificar si ayuda.

Gracias, esto funcionó correctamente, aunque no me gustó la estructura, la cláusula IN también debería funcionar en las consultas de ruta. Encontraré una manera de informarlo a Microsoft solo para actualizar la documentación del idioma de consulta del centro de iot.

@Henrique Puede enviar sus comentarios al final de este documento después de iniciar sesión o mediante el botón superior de Azure Portal :).

@Henrique Recibo confirmación de este problema. El operador IN es compatible con la consulta de dispositivo gemelo, pero no con la consulta de enrutamiento. Desde document, puede ver que el operador IN está en la sección "Consultas de dispositivos gemelos".