Я использую структуру агрегации MongoDB. У меня есть коллекция Mon go с такими документами:
{
'step': 1,
'name': 'house',
'score': 2
}
{
'step': 1,
'name': 'car',
'score': 3
}
{
'step': 2,
'name': 'house',
'score': 4
}
Я группирую документы с одним и тем же «шагом» и нажимаю «name» и «score» в массив объектов. Я получаю:
{
'step': 1,
'scores':
[
{'name':'house','score':2},
{'name':'car','score':3}
]
}
{
'step': 2,
'scores':
[
{'name':'house','score':4}
]
}
Для каждого «шага» мне нужно скопировать значение предыдущего «шага» в случае, если «имя» не существует. У меня должно получиться что-то вроде этого:
{
'step': 1,
'scores':
[
{'name':'house','score':2},
{'name':'car','score':3}
]
}
{
'step': 2,
'scores':
[
{'name':'house','score':4},
**{'name': 'car', 'score':3}**
]
}
Во втором документе элемент {'name': 'car', 'score': 3} был скопирован из предыдущего документа, потому что на этапе 'step: 2 «нет документов с« оценкой »для« автомобиль ».
Я не могу понять, как выполнить эту операцию с агрегацией MongoDB. Мы будем очень благодарны за некоторую помощь.