You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure NiFi中使用JoltTransformJSON去除$oid属性

解决MongoDB $oid格式的Jolt转换问题

问题场景

从MongoDB获取的原始JSON结构:

{
  "_id" : {
    "$oid" : "5bd761deae323e45a93cddae"
  }
}

需要通过Azure NiFi的JoltTransformJSON处理器转换为:

{
  "_id" : "5bd761deae323e45a93cddae"
}

错误尝试的规则

之前使用的Jolt规则会触发java.lang.reflect.invocationtargetexception错误,且输出键名不符合需求:

[
  {
    "operation": "shift",
    "spec": {
      "_id": {
        "$oid": "id"
      }
    }
  }
]

正确的Jolt转换规则

使用以下shift操作规则即可实现需求:

[
  {
    "operation": "shift",
    "spec": {
      "_id": {
        "$oid": "_id"
      }
    }
  }
]

规则说明

  • shift操作负责重新映射JSON结构
  • 按嵌套层级匹配:先定位到_id对象,提取其下的$oid值,将该值直接映射到根级的_id键,完成扁平化转换
  • 该规则不会触发异常,同时严格保留目标结构中的_id键名

批量处理扩展(可选)

如果需要批量处理所有包含$oid的字段(不止_id),可以使用通配符规则:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "$oid": "&1"
      }
    }
  }
]

这里&1表示引用父级的键名,实现所有带$oid的嵌套字段自动扁平化。

内容的提问来源于stack exchange,提问作者Se Hyun Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:55:04