Necesitas usar el aggregate
comando
Esto debería darte una lista de publicaciones _id con la cantidad de comentarios ordenados por el conteo en orden inverso.
Puede usar los operadores $limit para devolver las filas superiores x. p.ej. { $limit : 5 }
db.posts.aggregate(
{ $unwind : "$comments" },
{ $group : { _id : "$_id" , number : { $sum : 1 } } },
{ $sort : { number : -1 } }
);
Eche un vistazo http://docs.mongodb.org/manual/tutorial/aggregation -ejemplos/