allowDiskUse
não está relacionado ao limite de tamanho de resultado de 16 MB. Essa configuração controla se as etapas do pipeline, como $sort ou $group, podem usar algum espaço em disco temporário se precisarem de mais de 100 MB de memória. Em teoria, para um pipeline arbitrário, isso pode ser uma quantidade muito grande de espaço em disco. Pessoalmente, nunca foi um problema, mas isso dependerá dos seus dados. Se o seu resultado for maior que 16 MB, você precisará usar o estágio de pipeline $out para enviar os dados para uma coleção ou usar uma API de pipeline que retorne um cursor para os resultados em vez de retornar todos os dados em linha (para alguns drivers, isso é um método separado, para outros é um sinalizador passado para o mesmo método).