梳理两个查询的结果

时间:2013-07-24 18:17:58

标签: mongodb mongodb-java aggregation-framework

我的收藏就像

{ queid:"1', date:'07/24/2013', resolved:'true' }

我希望获得像

这样的计数
{date:'07/24/2013',countquestion:10,resolved:5}
{date:'07/23/2013',countquestion:5,resolved:2}

目前我正在使用

计算问题数量
que.aggregate({$group:"$date",count{$sum:1}})

并使用

解决
que.aggregate({$match:{resolved:true}},{$group:"$date",count{$sum:1}})

在java程序中结合两者。有没有更好的方法来执行此查询并结合结果。

1 个答案:

答案 0 :(得分:1)

您可以使用$cond运算符实现此目的。只需注意resolved字段,它应该是一个布尔值。

{
    "$group": {
        "_id": "$date",
        "countquestion": {
            "$sum": 1
        },
        "resolved": {
            "$sum": {
                "$cond": [ "$resolved", 1, 0 ]
            }
        }
    }
}