官方文档翻了好久,最后找到了 $indexOfArray 配合 $group $project 既可以实现; db.collection.aggregate([ {$sort:{score:-1}}, //按照分数排序 {$group:{_id:null,all:{$push:"$openid"}}}, // 将所有排序结果push到all数组中,方便下面使用$indexOfArray {$project:{_id:0,total:{$size:"$all"},index:{ $indexOfArray:[ "$all",openid] }}} // 这里的openid为要查找名次的openid ]) // 返回结果类似下面这样: total 总人数,index 为名次 { "total" : 3, "index" : 1 }
官方文档翻了好久,最后找到了 $indexOfArray 配合 $group $project 既可以实现;