如何删除mongodb v3中聚合管道输出json的key中的类型名?

c2e8gylq  于 2021-06-04  发布在  Kafka
关注(0)|答案(0)|浏览(191)

我使用mongodbkafka连接器v1.1.0作为源连接器,从数据库中读取数据,并在将消息发布到kafka主题之前执行一些数据转换。
但是,问题是它不支持smt,所以在发送有效负载之前,我不得不使用mongodb聚合管道来执行数据转换。
所有这些都很好,除非数据类型不是字符串,mongodb将该类型作为键插入。
有没有一种方法可以使用mongodb聚合管道删除该类型,使其看起来像一个正确构造的json?
实际json负载

{
   "messageId":"45581b14-28fe-40cb-a26e-ec7701150830",
   "entityId":{
      "$numberLong":"813956"
   },
   "groupId":{
      "$numberLong":"151747222"
   },
   "event":"ENTITY_CREATED",
   "payload":"{\"entityId\":813956,\"category\":1,\"timestamp\":\"2020/09/09 11:09:31\"}",
   "timestamp":{
      "$date":1599617371132
   }
}

所需的json负载

{
   "messageId":"45581b14-28fe-40cb-a26e-ec7701150830",
   "entityId": 813956,
   "groupId": 151747222,
   "event":"ENTITY_CREATED",
   "payload":"{\"entityId\":813956,\"category\":1,\"timestamp\":\"2020/09/09 11:09:31\"}",
   "timestamp": "2020/09/09 11:09:31"
}

p、 请注意,我使用的是v3,升级到v4不是一个选项。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题