Lookup Mapping


Lookup Mapping 节点根据映射文件,查找映射关系,并将指定的映射数据输出到输出 msg。


若需聚合多个映射数据结果,CSV 文件中必须添加 dataType 列头。如果映射成功,输入 msg 中的数据将根据 CSV 中指定的 dataType 输出到输出 msg 中。

注解

该节点只做映射关系的查询,后续的标准设备测点的结构,需要其他节点来做封装。

节点类型

IoT Hub。

输入和输出能力

该节点具有 1 个入口点和 1 个出口点。输入和输出都是 JSON 格式。

节点属性

../../_images/lookup_mapping.png


名称

该节点的名称。


映射文件

上传 CSV 映射文件。你可以点击 下载模板 图标 template 下载模板使用、点击 上传 图标 upload 上传文件、或者点击 下载 图标 download 下载已上传的文件。


映射结果

基于映射文件,下拉选择 CSV 文件中的字段名,作为映射之后的输出,可以多选。

若需聚合多个映射数据结果,CSV 文件里必须添加 dataType 列头。支持的 dataType 值如下。

  • number:数字类型
  • string:文本类型
  • array<number>:数字组成的数组类型
  • array<string>:文本字符串组成的数组类型
  • boolean:布尔类型


映射 Key

基于映射文件,下拉选择 CSV 文件中的字段名,作为映射字段,可以多选。


映射 Value

默认情况下,如果映射成功,输入 msg 中的数据将根据 dataType 输出到输出 msg(参见 示例 1)。若需指定输出特定数据,可在这里使用表达式指定,例如 ${msg.value}(参见 示例 5)。未指定的数据不会出现在输出 msg 中。


描述

该节点的描述。

使用限制

  • 映射文件最大支持 5 万条数据。
  • 最大映射文件大小:2M
  • 仅支持 CSV 文件。
  • 映射 Value 只能指定一个值。

示例

下面的示例基于具有以下数据的 CSV 文件。

Key1 Key2 Key3 dataType
AI000001 1KaobBq4I AO-BOOL-ARRAY array<string>
AI000001 2KaobBq4I AO-BOOL-STRING string
AI000001 3KaobBq4I AO-BOOL-STRING2 string
AI000001 4KaobBq4I AO-BOOL-ARRAY array<string>
AI000002 1KaobBq4I AO-BOOL-ARRAY array<string>
AI000002 6KaobBq4I AO-BOOL-STRING string
AI000003 7KaobBq4I AO-BOOL-ARRAY array<string>
AI000004 8KaobBq4I AO-BOOL-FLOAT number

输入与输出示例

示例 1

映射结果: Key2, Key3

映射 Key: Key1

输入
[
  {
    "Key1": "AI000003", //Key1 是作为映射的 Key
    "value": "88",
    "color": "blue",
    "type": "circle",
  }
]
输出
[
  {
    "Key1": "AI000003",
    "value": "88",
    "color": "blue",
    "type": "circle",
    "Key2": "7KaobBq4I",
    "Key3": "AO-BOOL-ARRAY"
  }
]

示例 2

映射结果: Key3

映射 Key: Key1, Key2

输入
[
  {
    "Key1": "AI000004", //Key1 和 Key2 是作为映射的 Key
    "Key2": "8KaobBq4I",
    "value": "77"
  }
]
输出
[
  {
    "Key1": "AI000004",
    "Key2": "8KaobBq4I",
    "value": "77",
    "Key3": "AO-BOOL-FLOAT"
  }
]

示例 3

映射结果: Key2, Key3

映射 Key: Key1

映射 Value: ${msg.value}

输入
[
  {
    "Key1": "AI000001",
    "value": "5"
  },
  {
    "Key1": "AI000002",
    "value": "6"
  }
]
输出
[
  {
    "Key2": "6KaobBq4I",
    "Key1": "AI000002",
    "value": "6",
    "Key3": "AO-BOOL-STRING"
  },
  {
    "Key2": "2KaobBq4I",
    "Key1": "AI000001",
    "value": "5",
    "Key3": "AO-BOOL-STRING"
  },
  {
    "Key2": "3KaobBq4I",
    "Key1": "AI000001",
    "value": "5",
    "Key3": "AO-BOOL-STRING2"
  },
  {
    "Key2": "4KaobBq4I",
    "value": [
      "5"
    ],
    "Key3": "AO-BOOL-FLOAT"
  },
  {
    "Key2": "1KaobBq4I",
    "value": [
      "6",
      "5"
    ],
    "Key3": "AO-BOOL-ARRAY"
  }
]

示例 4

映射结果: Key2, Key3

映射 Key: Key1

输入
[
  {
    "Key1": "AI000001",
    "value": "18"
  }
]
输出
[
  {
    "Key2": "1KaobBq4I",
    "Key1": "AI000001",
    "value": "18",
    "Key3": "AO-BOOL-ARRAY"
  },
  {
    "Key2": "2KaobBq4I",
    "Key1": "AI000001",
    "value": "18",
    "Key3": "AO-BOOL-STRING"
  },
  {
    "Key2": "3KaobBq4I",
    "Key1": "AI000001",
    "value": "18",
    "Key3": "AO-BOOL-STRING2"
  },
  {
    "Key2": "4KaobBq4I",
    "Key1": "AI000001",
    "value": "18",
    "Key3": "AO-BOOL-ARRAY"
  }
]

示例 5

映射结果: Key2, Key3

映射 Key: Key1

映射 Value: ${msg.color}

输入
[
  {
    "Key1": "AI000003",
    "value": "7",
    "color": "blue",
    "type": "circle"
  }
]
输出
[
  {
      "Key2": "7KaobBq4I",
      "color": [
        "blue"
      ],
      "Key3": "AO-BOOL-ARRAY"
    }
]