Можно ли использовать переменные, определенные на этапе $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 переменных), и мой код, вероятно, будет выглядеть плохо, так как будет много проецирования одних и тех же переменных. Как мне это сделать?