Isso pode acontecer devido a um bug como SERVER-13611 (por isso, verifique se você está na versão mais recente ), ou porque você está tentando classificar em um índice esparso em 2.6 , mas mais comumente é porque você está simplesmente tentando classificar muitos registros na memória sem um índice.
O limite específico que você está atingindo é intencional e é documentado aqui - não pode ser mudou, então você precisa reduzir o conjunto de resultados, ou usar um índice etc. para realizar o tipo.
Atualização (novembro de 2014): A próxima versão 2.8 (2.8.0-rc0 até o momento) permite que essa configuração seja ajustada da seguinte maneira:
db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: <limit in bytes>})
O valor padrão é 32MiB (33554432 bytes) e deve ser ajustado com cuidado - grandes classificações na memória podem fazer com que seu banco de dados pare (por isso houve um limite em primeiro lugar).