【发布时间】:2020-08-18 15:50:34
【问题描述】:
尝试 1:(仅返回总数)
db.collection.aggregate([
{
$match: {
"dob.age": 59
}
},
{
$count: "total"
},
{
$project: {
"dob.age": 1,
"total":1
}
}
])
尝试 2(异常 - 管道阶段规范对象必须只包含一个字段)
db.collection.aggregate([
{
$match: {
"dob.age": 59
}
},
{
$count: "total",
"dob.age": 1
}
])
尝试 3(空对象):
db.collection.aggregate([
{
$match: {
"dob.age": 59
}
},
{
$group: {
_id: null,
total: {
$sum: 1
}
}
},
{
$project: {
_id: 0,
"dob.age": 1
}
}
])
【问题讨论】:
-
这是否回答了您的问题:stackoverflow.com/questions/51029987/… ?
-
@mickl 我们真的需要那么多步骤吗?我来自 RDBS 背景,在 RDBMS 中这将非常简单。
-
@SamuraiJack 你只需要一个管道
$facet看看这个mongoplayground.net/p/wG4qtu-Mty3
标签: node.js mongodb mongodb-query nosql