在MongoDB中重构文档

时间:2019-01-24 04:12:34

标签: mongodb

我在mongoDB中具有这样的文档结构。

{
'identifier': 'testanalysis',
'uuid': 'abc',
'days': [{'day': 20190122, 'value': 1}, {'day': 20190123, 'value': 2}, ]
},
{
'identifier': 'testanalysis',
'uuid': 'xyz',
'days': [{'day': 20190122, 'value': 5}, {'day': 20190123, 'value': 10}, ]
}

我希望得到如下结果:似乎是按day分组并结合uuidvalue作为对象。

{
    'day': 20190122,
    'result': [
        {'uuid': 'abc', 'value': 1},
        {'uuid': 'xyz', 'value': 5},
    ]
},
{
    'day': 20190123,
    'result': [
        {'uuid': 'abc', 'value': 2},
        {'uuid': 'xyz', 'value': 10},
    ]
}

1 个答案:

答案 0 :(得分:1)

Aggregation

db.collection.aggregate([
  { $unwind: '$days' },
  { $group: {
      _id: "$days.day",
      day: { $first: "$days.day" },
      result: {
        $push: { 'uuid': '$uuid', 'value': '$days.value' }
      }
    }
  }
])