如何查询报告的双胞胎是字符串数组,例如:
"SupportedCommands": [
"firmwareUpdate",
"diagnostics",
"getLog",
"calculateHash"
]我检查了一些命令,比如
WHERE CONTAINS(array, string) 或
WHERE [string] IN [array] 但是没有人工作
发布于 2020-09-23 23:44:23
查询双胞胎和作业时,唯一支持的函数是:
IS_DEFINED(属性)
请参阅更多详细信息here。
由于可以在两个步骤中使用查询,其中第一个步骤(如在IoT集线器服务端发生的预查询过程)将根据属性的值返回所有双胞胎,请参阅以下示例:
SELECT
deviceId, properties.reported.SupportedCommands
FROM devices
WHERE properties.reported.SupportedCommands NIN [ null, [], ['abc', '123'] ]第二步将在客户端使用LINQ语句,请参见以下示例:
var dummy = new { SupportedCommands = new string[] { } };
var query2 = (await query1.GetNextAsJsonAsync()).Where(i => JsonConvert.DeserializeAnonymousType(i, dummy).SupportedCommands.Contains("getLog"));发布于 2021-06-22 21:37:37
我是这样解决的:
SELECT * FROM devices
WHERE ARRAY_CONTAINS(tags.SupportedCommands,'firmwareUpdate')我希望它对你有用。
https://stackoverflow.com/questions/64028885
复制相似问题