New*_*Pea 3 mongodb aggregation-framework
我有一个包含7主题的集合。
6信用值为3
1信用值为 的主体6。
我必须找到学分值超过 的科目总数6。
我如何让它打印0?
db.Subject.aggregate([{$match:{"subject.prerequisite":{$gt:6}}},
{$count:"Total"}])
Run Code Online (Sandbox Code Playgroud)
预期的:Total : 0
实际的:Nothing
当您$match没有返回任何文档时,MongoDB 只是停止处理进一步的管道阶段,这在这种情况下有点违反直觉,因为您希望$count始终返回文档的数量,即使它是0.
如果你想获得total价值,你可以利用$facet运算符,尝试:
db.Subject.aggregate([
{
$facet: {
matched: [ {$match:{"subject.prerequisite":{$gt:6}}} ]
}
},
{
$project: {
Total: { $size: "$matched" }
}
}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |