收藏
回答

aggregate下如何改变下列数据格式?

[
  {
    "_id": "MK-BLX",
    "name": "菠萝熊",
    "size": "小码",
    "x": [
      {
        "qty": 20,
        "type": "WV"
      },
      {
        "qty": 20,
        "type": "DV"
      }
    ]
  },
  {
    "_id": "MK-BLX",
    "name": "菠萝熊",
    "size": "标准",
    "x": [
      {
        "qty": 100,
        "type": "WV"
      },
      {
        "qty": 100,
        "type": "DV"
      }
    ]
  },
  {
    "_id": "MK-DX2",
    "name": "黛西套件羊羔绒",
    "size": "标准",
    "x": [
      {
        "qty": 603,
        "type": "WV"
      },
      {
        "qty": 623,
        "type": "DV"
      }
    ]
  }
]

上面是我通过aggregate目前实现的数据结果,但是我想最终效果是下面的格式。应该如何操作。

[
  {
    "_id": "MK-BLX",
    "name": "菠萝熊",
    "size": "小码",
    "WV": 20,
    "DV": 20
    },
    {
      "_id": "MK-BLX",
      "name": "菠萝熊",
      "size": "标准",
      "WV": 100,
      "DV": 100
      },
      {
        "_id": "MK-DX2",
        "name": "黛西套件羊羔绒",
        "size": "标准",
        "WV": 603,
        "DV": 623
       }
]
回答关注问题邀请回答
收藏

2 个回答

  • 北望沣渭
    北望沣渭
    2023-01-16

    谢邀,用如下代码撸起

    var a = [
        {
            "_id": "MK-BLX",
            "name": "菠萝熊",
            "size": "小码",
            "x": [
                {
                    "qty": 20,
                    "type": "WV"
                },
                {
                    "qty": 20,
                    "type": "DV"
                }
            ]
        },
        {
            "_id": "MK-BLX",
            "name": "菠萝熊",
            "size": "标准",
            "x": [
                {
                    "qty": 100,
                    "type": "WV"
                },
                {
                    "qty": 100,
                    "type": "DV"
                }
            ]
        },
        {
            "_id": "MK-DX2",
            "name": "黛西套件羊羔绒",
            "size": "标准",
            "x": [
                {
                    "qty": 603,
                    "type": "WV"
                },
                {
                    "qty": 623,
                    "type": "DV"
                }
            ]
        }
    ];
    
    var my = a.map(({_id, name, size, x}) => ({_id,name,size,...x.reduce((n, {type, qty}) => (n[type] = qty, n), {})}));
    
    console.info(my);
    
    [
      { _id: 'MK-BLX', name: '菠萝熊', size: '小码', WV: 20, DV: 20 },
      { _id: 'MK-BLX', name: '菠萝熊', size: '标准', WV: 100, DV: 100 },
      { _id: 'MK-DX2', name: '黛西套件羊羔绒', size: '标准', WV: 603, DV: 623 }
    ]
    
    
    2023-01-16
    有用
    回复
  • @
    @
    2023-01-16

    查出来自行组装对应格式数据吧

    2023-01-16
    有用
    回复
登录 后发表内容