【发布时间】:2019-02-04 21:43:24
【问题描述】:
我是 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:
我希望在以下 3 个单独的列中将输出作为总电影数、具有发行日期的电影和没有发行日期的电影的计数:
Total | Released | UnReleased
3 | 2 | 1
我能够编写单独的查询来执行计数,但我无法成功地将所有这些合并到一个查询中。最终目标是创建一个将这些计数作为输出的视图。我曾尝试使用 $and 等运算符,但似乎无法让查询按预期工作....这是我所得到的:
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" }
]
})
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework