投稿

5月, 2022の投稿を表示しています

Sortノードを使う(その3)

イメージ
ここのところずっと Node-RED のサンプルを見ながら各ノードの使い方を確認しています。 頭出しの記事はこちら をご確認ください。今回はSortノードシリーズの3回目です。 確認するサンプルは、前回に引き続き「 読み込み > サンプル > flows > node-red > sequence > sort > 02 - Sort message sequence 」です。前回紹介したサンプルとの違いは、Payloadを直接ソートするのではなく、複数メッセージをソート対象にしている点です。ソート対象の入力メッセージとソート後の出力ともに複数のメッセージのまま取り扱っているのがポイントです(前回紹介したサンプルは単一のメッセージ内でのソートでした)。それを再現するため、Sortノードの前にSplitノードを経由してメッセージをバラバラにしています。実運用ではわざわざSplitノードを利用することはなく、元々独立したメッセージをソートできることを示したいのだと思います。たぶん。 バラバラのメッセージをソートする 確認するのは1段目です。 入力データを生成するTemplateノードでは、単純な文字列配列を指定しています。 こいつをSplitノードでバラバラにしています。入力が配列なので固定長1でバラしてます。 Sortノードはmsg.payloadで昇順ソートするよう指定してあります。いたってシンプル。 実行すると、以下のログが出力されます。一度バラされた複数メッセージのmsg.payloadの値で昇順ソートされています。 ちなみに、2段目のサンプルは降順ソートです。3段目、4段目も文字列ソートに関するものです。これらは説明不要だと思うのでスキップします。 バラバラのメッセージに指定されたJSONオブジェクトのプロパティ値でソートする 続いて確認するサンプルは5段目です。フローの見た目は最初に確認したものと同じに見えますが、バラバラに飛んでくるJSONオブジェクトのプロパティ値でソートします。 入力データを生成しているTemplateノードでは、JSONオブジェクト配列を生成しています。 これをSplitノードで配列要素ごとにPayloadを分割します。Splitノードの内容は一つ前のサンプルと同じなので省略します。さらにSortノ