Възможно ли е да се използват променливи, дефинирани във фазата $project в същата тази фаза? Например, имам този тръбопровод за агрегиране:
pipeline = [{
'$match': {}
},
{
'$group': {
'_id': '$_id',
'n': {'$first': 'n'}
},
{
'$project': {
'name': 1,
'n': 1,
'revenue': {'$multiply': ['$n', 2]},
'cost': {'$multiply': ['$revenue', 0.25]}
}
}]
Бих искал да използвам променливата $revenue (която дефинирах в $project) в същата фаза на $project, за да изчисля стойността на разходите, но това не работи.
Има ли някакъв начин да направя това лесно и ефективно? Мислех да направя няколко проекции, но ще трябва да проектирам много променливи (~25 променливи) всеки път, когато трябва да изчисля една допълнителна променлива, и имам куп променливи за изчисляване, които зависят една от друга (~5 променливи), и кодът ми вероятно ще изглежда зле, тъй като ще има много проектиране на едни и същи променливи. Как трябва да се справя с това?