如何在mongodb聚合项目运算符中管道(重命名或计算的度量)

时间:2013-11-19 18:06:47

标签: mongodb aggregation-framework

我可以在同一个项目运算符中再次引用重命名的字段(以下查询中的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。我要求两个值都在输出中。有没有办法实现它?

1 个答案:

答案 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"]}}
    }
);