摇动变换规范以根据某种条件将数组中的两个对象合并

问题描述

我想合并对象的personId和visitDate相同的对象,否则将对象保留在数组中

样本输入-

[
  {
    "personId": 1,"visitDate": "1453545","htn": 1,"dm": 0
  },{
    "personId": 1,"dm": 1
  },{
    "personId": 2,"visitDate": "4453545",{
    "personId": 3,"visitDate": "6453545","dm": 1
  }
]

样本输出

[
  {
    "personId": 1,"dm": 1
  }
]

解决方法

看看下面的规范是否有帮助,将对象与personId隔离,然后使用基数删除重复项,然后将对象移至数组。

[
  {
    "operation": "shift","spec": {
      "*": "@personId[]"
    }
  },{
    "operation": "cardinality","spec": {
      "*": {
        "@": "ONE"
      }
    }
  },{
    "operation": "shift","spec": {
      "*": {
        "@": "[]"
      }
    }
  }
]