我可以在同一个项目运算符中再次引用重命名的字段(以下查询中的page_views)并使用相同的值来计算不同的值吗? (注意:下面的查询无法按预期工作)
db.article.aggregate(
{ $project : {
title : 1 ,
page_views : { add:["$views", 10] } ,
bar : "$other.foo",
perUserPageViews : { divide:["$page_views", "$user"] }
}}
);
我的用例是计算一个阶段值(a + b),然后计算(a + b) - c。我要求两个值都在输出中。有没有办法实现它?
答案 0 :(得分:0)
您可以通过添加两个$project运算符来执行此操作,如下所示。同样在您的代码中,您忘记在添加&之前添加$ sign。划分运营商。
db.agg.aggregate(
{$project : {
page_views : { "$add":["$views", 10]}}
},
{$project : {
title:1,
bar:"$other.foo",
page_views : 1,
perUserPageViews : {"$divide" : ["$page_views","$user"]}}
}
);