MongoDb 聚合$count显示 0



我有一个包含7主题的集合。

6 信用价值为3的科目

1 信用值为6的主体。

我必须找到信用值超过 6 的科目总数。

如何让它打印0

db.Subject.aggregate([{$match:{"subject.prerequisite":{$gt:6}}},
                      {$count:"Total"}])

预期:Total : 0

实际:Nothing

由于您的$match不返回任何文档,因此MongoDB只是停止处理进一步的管道阶段,这在这种情况下有点违反直觉,因为您希望$count始终返回文档数量,即使它是0

如果你想获得total值,你可以利用$facet运算符,试试:

db.Subject.aggregate([
    {
        $facet: {
            matched: [ {$match:{"subject.prerequisite":{$gt:6}}} ]
        }
    },
    {
        $project: {
            Total: { $size: "$matched" }
        }
    }
])

最新更新