嵌套数组聚合

时间:2018-08-04 17:19:44

标签: mongodb aggregation-framework

如何使用MongoDB聚合框架获取本文档中每个数组中所有第一元素的总和?

{
    items: {
        item1: [5, 8, 2],
        item2: [4, 3, 1],
        ...
    }
}

这是我尝试过的部分管道:

[{
  $addFields: {
    itemsAsArray: {
      $objectToArray: '$items'
    }
  }
}, {
  $project: {
    _id: 0,
    itemsAsArray: 1
  }
}, {
  $unwind: '$itemsAsArray'
}]

因此,我从匹配的文档中获取此items值,将其转换为数组,然后展开。现在,我有一个这样的对象数组:

[{
    itemsAsArray: {
        k: 'item1',
        v: [5, 8, 2]
    }
},
{
    itemsAsArray: {
        k: 'item2',
        v: [4, 3, 1]
    }
}, ... ]

使用此数组,如何将它们分组以产生现在表示为v的每个数组中第一个元素的总和?我在正确的轨道上吗?

0 个答案:

没有答案