Ao retornar o resultado para
db.jason.find().sort({"rank":1})
, o MongoDB ordenará os documentos pelo tipo "rank" e, em seguida, pelo valor "rank". Para fins de ordem de classificação, o MongoDB trata os documentos em que um campo está ausente como tendo um tipo NULL para esse campo. O tipo NULL é ordenado antes dos tipos numéricos e não pode ser alterado (consulte http://docs.mongodb.org/manual/reference/method/cursor.sort/
para a ordem de classificação de tipo interno). Sugiro construir duas consultas (uma para documentos contendo "rank" e outra para documentos sem "rank") e mesclar os resultados em seu aplicativo. No entanto, se você precisar manter essa consulta única, precisará definir "rank" em todos os documentos para gerar a ordem desejada (por exemplo, usando um valor sentinela com um tipo que classifica após tipos numéricos).