msg.parts = {
id: "abc123", // 分割グループの識別子
index: 0, // このメッセージの順番(0から)
count: 3, // 総分割数
type: "array", // 元のデータ型
key: "Apple" // オブジェクト分割時のキー名
}
📋 サンプルフロー(クリックで展開)
参照元:NodeREDエディター内サンプルフロー
[{"id":"4775a535c935964a","type":"tab","label":"join","disabled":false,"info":"","env":[]},{"id":"afe74de5.58488","type":"comment","z":"4775a535c935964a","name":"Example: Automatic Mode","info":"Join node can be used to join payload of messages into single message payload. In automatic mode, it uses `parts` property to decide sequence of messages to join.","x":230,"y":120,"wires":[]},{"id":"d0c8c78e.1281e8","type":"inject","z":"4775a535c935964a","name":"","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":240,"wires":[["c59ac70d.bb9c58"]]},{"id":"c59ac70d.bb9c58","type":"template","z":"4775a535c935964a","name":"data","field":"payload","fieldType":"msg","format":"text","syntax":"plain","template":"Apple\nOrange\nBanana\nKiwi","output":"str","x":430,"y":240,"wires":[["21829618.af5b0a"]]},{"id":"d6c9fe0.d34ad","type":"join","z":"4775a535c935964a","name":"","mode":"auto","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","useparts":false,"accumulate":"false","timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":710,"y":240,"wires":[["8defdbb8.aa9c08"]]},{"id":"21829618.af5b0a","type":"split","z":"4775a535c935964a","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":570,"y":240,"wires":[["d6c9fe0.d34ad"]]},{"id":"8defdbb8.aa9c08","type":"debug","z":"4775a535c935964a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":870,"y":240,"wires":[]},{"id":"7bf47d74.b233b4","type":"comment","z":"4775a535c935964a","name":"Example: Manual Mode","info":"","x":260,"y":360,"wires":[]},{"id":"7f104f68.aecff","type":"inject","z":"4775a535c935964a","name":"","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":480,"wires":[["ed0381d3.e25fc"]]},{"id":"ed0381d3.e25fc","type":"template","z":"4775a535c935964a","name":"data","field":"payload","fieldType":"msg","format":"text","syntax":"plain","template":"Apple\nOrange\nBanana\nKiwi","output":"str","x":430,"y":480,"wires":[["12b322b7.78f48d"]]},{"id":"a4f5546e.28b268","type":"join","z":"4775a535c935964a","name":"","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":",","joinerType":"str","useparts":false,"accumulate":"false","timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":710,"y":480,"wires":[["e3e636ab.5c5068"]]},{"id":"12b322b7.78f48d","type":"split","z":"4775a535c935964a","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":570,"y":480,"wires":[["a4f5546e.28b268"]]},{"id":"e3e636ab.5c5068","type":"debug","z":"4775a535c935964a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":870,"y":480,"wires":[]},{"id":"6a104137.204b3","type":"comment","z":"4775a535c935964a","name":"Join two consecutive messages (count=2)","info":"","x":350,"y":420,"wires":[]},{"id":"9279b993.ba7ed8","type":"comment","z":"4775a535c935964a","name":"Example: Reduce Mode","info":"","x":260,"y":1220,"wires":[]},{"id":"e415861b.d82e38","type":"inject","z":"4775a535c935964a","name":"","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":1340,"wires":[["7c8a4816.500ed8"]]},{"id":"7c8a4816.500ed8","type":"template","z":"4775a535c935964a","name":"data","field":"payload","fieldType":"msg","format":"json","syntax":"plain","template":"[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]","output":"json","x":430,"y":1340,"wires":[["7f64da1f.611014"]]},{"id":"5fde318f.23897","type":"join","z":"4775a535c935964a","name":"","mode":"reduce","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":",","joinerType":"str","useparts":false,"accumulate":"false","timeout":"","count":"","reduceRight":false,"reduceExp":"$A+payload","reduceInit":"0","reduceInitType":"num","reduceFixup":"$A/$N","x":710,"y":1340,"wires":[["50977eaf.0490b"]]},{"id":"50977eaf.0490b","type":"debug","z":"4775a535c935964a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":870,"y":1340,"wires":[]},{"id":"57bce4bf.38d02c","type":"comment","z":"4775a535c935964a","name":"Calculate average using Reduce","info":"","x":320,"y":1280,"wires":[]},{"id":"7f64da1f.611014","type":"split","z":"4775a535c935964a","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":570,"y":1340,"wires":[["5fde318f.23897"]]},{"id":"array_comment","type":"comment","z":"4775a535c935964a","name":"Example: Array Mode (パターン4)","info":"配列形式でメッセージを結合","x":280,"y":780,"wires":[]},{"id":"p4_inject","type":"inject","z":"4775a535c935964a","name":"実行","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Apple,Orange,Banana,Kiwi","payloadType":"str","x":270,"y":900,"wires":[["p4_split"]]},{"id":"p4_split","type":"split","z":"4775a535c935964a","name":"分割","splt":",","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":410,"y":900,"wires":[["p4_join"]]},{"id":"p4_join","type":"join","z":"4775a535c935964a","name":"配列結合","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":",","joinerType":"str","useparts":false,"accumulate":"false","timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":550,"y":900,"wires":[["p4_debug"]]},{"id":"p4_debug","type":"debug","z":"4775a535c935964a","name":"結果","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":710,"y":900,"wires":[]},{"id":"p4_note","type":"comment","z":"4775a535c935964a","name":"Join 2 messages into array","info":"","x":300,"y":840,"wires":[]},{"id":"timeout_comment","type":"comment","z":"4775a535c935964a","name":"Example: Timeout Mode (パターン3)","info":"タイムアウトを使用してメッセージを結合","x":300,"y":580,"wires":[]},{"id":"p3_inject","type":"inject","z":"4775a535c935964a","name":"実行","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Apple,Orange,Banana,Kiwi","payloadType":"str","x":280,"y":700,"wires":[["p3_split"]]},{"id":"p3_split","type":"split","z":"4775a535c935964a","name":"分割","splt":",","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":420,"y":700,"wires":[["p3_delay"]]},{"id":"p3_delay","type":"delay","z":"4775a535c935964a","name":"1秒/msg","pauseType":"rate","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":550,"y":700,"wires":[["p3_join"]]},{"id":"p3_join","type":"join","z":"4775a535c935964a","name":"2秒タイムアウト","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":",","joinerType":"str","useparts":false,"accumulate":"false","timeout":"2","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":720,"y":700,"wires":[["p3_debug"]]},{"id":"p3_debug","type":"debug","z":"4775a535c935964a","name":"結果","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":880,"y":700,"wires":[]},{"id":"p3_note","type":"comment","z":"4775a535c935964a","name":"Join with 2 second timeout","info":"","x":310,"y":640,"wires":[]},{"id":"object_comment","type":"comment","z":"4775a535c935964a","name":"Example: Object Mode (パターン5)","info":"オブジェクト形式でメッセージを結合","x":290,"y":1000,"wires":[]},{"id":"p5_inject","type":"inject","z":"4775a535c935964a","name":"実行","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":270,"y":1120,"wires":[["p5_template"]]},{"id":"p5_template","type":"template","z":"4775a535c935964a","name":"商品データ","field":"payload","fieldType":"msg","format":"json","syntax":"plain","template":"[{\"name\": \"Apple\", \"price\": 100}, {\"name\": \"Orange\", \"price\": 80}]","output":"json","x":420,"y":1120,"wires":[["p5_split"]]},{"id":"p5_split","type":"split","z":"4775a535c935964a","name":"分割","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":570,"y":1120,"wires":[["p5_change"]]},{"id":"p5_change","type":"change","z":"4775a535c935964a","name":"topic/payload設定","rules":[{"t":"set","p":"topic","pt":"msg","to":"payload.name","tot":"msg"},{"t":"set","p":"payload","pt":"msg","to":"payload.price","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":730,"y":1120,"wires":[["p5_join"]]},{"id":"p5_join","type":"join","z":"4775a535c935964a","name":"オブジェクト結合","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":",","joinerType":"str","useparts":false,"accumulate":"false","timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":940,"y":1120,"wires":[["p5_debug"]]},{"id":"p5_debug","type":"debug","z":"4775a535c935964a","name":"結果","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1110,"y":1120,"wires":[]},{"id":"p5_note","type":"comment","z":"4775a535c935964a","name":"Create key/value object from array","info":"","x":330,"y":1060,"wires":[]}]
モード: 自動
入力: "Apple" → "Orange" → "Banana" → "Kiwi" (4メッセージ)
出力: "Apple\nOrange\nBanana\nKiwi" (1メッセージ)
モード: 手動
結合形式: 文字列
結合文字: ,
メッセージ数: 2
入力: "Apple" → "Orange" → "Banana" → "Kiwi"
出力: "Apple,Orange" → "Banana,Kiwi"
モード: 手動
結合形式: 文字列
結合文字: ,
タイムアウト: 2秒
入力: 1秒間隔で "Apple" → "Orange" → "Banana" → "Kiwi"
出力: "Apple,Orange" → "Banana,Kiwi" (約2秒ごとに出力)
モード: 手動
結合形式: 配列
メッセージ数: 2
入力: "Apple" → "Orange" → "Banana" → "Kiwi"
出力: ["Apple", "Orange"] → ["Banana", "Kiwi"]
モード: 手動
結合形式: キー/値 オブジェクト
メッセージ数: 2
入力: {topic: "Apple", payload: 100} → {topic: "Orange", payload: 80}
出力: {"Apple": 100, "Orange": 80}
モード: Reduce
Reduce式: $A + payload
初期値: 0
最終処理: $A / $N
入力: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
処理: (1+2+3+4+5+6+7+8+9+10) / 10
出力: 5.5 (平均値)
温度センサー + 湿度センサー + 気圧センサー
↓
Joinノード(オブジェクト形式)
↓
{
"temperature": 25.5,
"humidity": 60,
"pressure": 1013
}
↓
データベース保存 or ダッシュボード表示
ユーザー情報API →
注文履歴API → Join(マージ)→ 統合レスポンス
在庫情報API →
出力: {
"user": {...},
"orders": [...],
"inventory": {...}
}
1時間分のログデータ(100件)
↓
Split(行ごとに分割)
↓
フィルタリング(エラーログのみ)
↓
Join(Reduce: $A + 1, 初期値: 0)
↓
エラー件数: 15
工場の10台のデバイス
↓
各デバイスから生産数を受信(タイムアウト: 5秒)
↓
Join(配列形式)
↓
[120, 115, 130, 125, 110, 128, 122, 118, 132, 126]
↓
合計・平均計算 → レポート生成
// 合計
$A + payload
// 最大値
payload > $A ? payload : $A
// 配列に追加
$append($A, [payload])
// オブジェクト配列に変換
$append($A, [{"value": payload, "index": $I}])
// 条件付き加算
payload > 10 ? $A + payload : $A