我正在处理一个复杂的分页聚合查询,我正在尝试了解Mongo是什么和不能做什么。我在这里遵循了这个问题,除了没有返回数据的时候,所有的工作都很好。
Mongo返回:{metadata:[],data:[]}
,但我想看看是否可以返回
{metadata:[{count:0}],data:[]}
以便前端处理更容易。到目前为止我还没能做到这一点。
下面是我正在使用的$facet管道的一个片段:
{
"$facet": {
"metadata": [{
"$count": "total"
}],
"data": [{
"$skip": 0
}, {
"$limit": 10
}]
}
}
当然,这可以在后端查询之后完成,但我确实希望Mongo来处理它。
您可以在元数据方面字段内使用$group
而不是$count
,
$group
按_id:null
执行,并使用$sum
total
中获取总数
{
$facet: {
metadata: [
{
$group: {
_id: null,
total: { $sum: 1 }
}
}
],
data: [
{ $skip: 0 },
{ $limit: 10 }
]
}
}
操场