如何在Mulesoft Anypoint Studio中使用ObjectId类型的字段之一在MongoDB中插入文档?

时间:2019-10-14 12:46:15

标签: mongodb mule anypoint-studio mule-esb mulesoft

我正在尝试在MongoDB集合中插入文档,其中ObjectId类型的字段之一引用另一个集合中的文档。请参考以下示例:

{
    "_id": ObjectId("5d9b5191cbab733354f8345b"),
    "accountBalance": 1234.0,
    "pinCounter": 3,
    "status": "ACTIVE",
    "pinNumber": "1234",
    "accountType": "CURRENT",
    "customerId": ObjectId("5d96e3bd1c9d4400005cbb23")
}

MongoDB生成_id字段,同时在请求中提供customerId(在上面的示例中为 5d96e3bd1c9d4400005cbb23 )。 但是,当尝试通过附加字符串“ ObjectId(”)来映射上述格式的数据时,将失败,因为在这种情况下,该字段将作为字符串插入。

1 个答案:

答案 0 :(得分:0)

这是用于ObjectId的格式:

  "_id" : {
        "\$oid": "5d9b5191cbab733354f8345b"
  }

因此完整的DW脚本应类似于:

%dw 2.0
output application/json
---
{
    "_id" : {
       "\$oid": "5d9b5191cbab733354f8345b"
    },
    "accountBalance": 1234.0,
    "pinCounter": 3,
    "status": "ACTIVE",
    "pinNumber": "1234",
    "accountType": "CURRENT",
    "customerId": {
       "\$oid": "5d96e3bd1c9d4400005cbb23"
    }
}