join

join(Array<L>, Array<R>, (leftValue: L) -> String, (rightValue: R) -> String): Array<Pair<L, R>>

オブジェクトの 2 つの配列を、指定された ID 条件で結合します。

join​ は、すべての ​left​ 項目を含む配列を返し、存在する右の項目を ID によってマージします。

DataWeave 2.2.0 で導入されました。Mule 4.2 以降でサポートされます。

パラメーター

名前 説明

left

オブジェクトの左側配列。

right

オブジェクトの右側配列。

leftCriteria

左のコレクションの ID を抽出するために使用する条件。

rightCriteria

右のコレクションの ID を抽出するために使用する条件。

次の例は、結合の動作を示しています。出力には、入力の ​user.id​ と ​product.ownerId​ の値が一致するオブジェクトのみが含まれます。 関数の出力には ​"l"​ キーと ​"r"​ キーが含まれます。

ソース

 %dw 2.0
 import * from dw::core::Arrays
 var users = [{id: "1", name:"Mariano"},{id: "2", name:"Leandro"},{id: "3", name:"Julian"},{id: "5", name:"Julian"}]
 var products = [{ownerId: "1", name:"DataWeave"},{ownerId: "1", name:"BAT"}, {ownerId: "3", name:"DataSense"}, {ownerId: "4", name:"SmartConnectors"}]
 output application/json
 ---
 join(users, products, (user) -> user.id, (product) -> product.ownerId)

出力

[
  {
    "l": {
      "id": "1",
      "name": "Mariano"
    },
    "r": {
      "ownerId": "1",
      "name": "DataWeave"
    }
  },
  {
    "l": {
      "id": "1",
      "name": "Mariano"
    },
    "r": {
      "ownerId": "1",
      "name": "BAT"
    }
  },
  {
    "l": {
      "id": "3",
      "name": "Julian"
    },
    "r": {
      "ownerId": "3",
      "name": "DataSense"
    }
  }
]