小编Asd*_*d J的帖子

在mongodb中使用单个查询的多个计数

我是Mongo Db的新手,非常感谢您对此查询的一些帮助.在过去的几天里,我一直在筛选这些帖子,撕扯我的头发,看看我是否能找到与我的查询相关但没有运气的任何内容.

我有一个集合,文档结构类似于下面:

_id: xyz
Movieid: 123
MovieName: Titanic
ReleaseDate: 2000-01-01

_id: uvw
Movieid: 456
MovieName: Titanic II
ReleaseDate: 2018-01-01

_id: pqr
Movieid: 789
MovieName: Titanic III
ReleaseDate: 
Run Code Online (Sandbox Code Playgroud)

我希望在3个单独的列中实现输出作为总电影,具有发布日期的电影和没有发布日期的电影的计数,如下所示:

Total   |   Released  |     UnReleased
 3      |       2     |          1
Run Code Online (Sandbox Code Playgroud)

我能够编写单独的查询来执行计数,但我无法将所有这些成功整合到单个查询中.最终目标是创建一个视图,将这些计数作为输出.我已经尝试使用$和等运算符,但似乎无法使查询按预期工作....这是我得到的:

db.getCollection("Movies").aggregate(
    $and: [
{ 
            "$match" : 
                {"ReleaseDate":{$exists:true}}
            }
        , 
        { 
            $count:"Total"
        },
        { 
            "$match" : 
                {"ReleaseDate":{$exists:true,$nin:[""]}}
            }
        , 
        { 
            $count:"Released"
        },

        { 
            "$match" : 
                {"ReleaseDate":{$exists:true,$in:[""]}}
            }
        , 
        { 
            $count:"Unreleased"
        }


    ]
);
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

8
推荐指数
1
解决办法
3799
查看次数