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