Precisa usar o método populate() para preencher os dados da coleção referenciada. Se não usar o populate(), o resultado da pesquisa retornará apenas a referência, mas não o objeto completo, seria isso?
No caso, para encontrar um aluno com uma habilidade específica, você pode usar a função populate() para incluir os detalhes da habilidade na consulta: db.alunos.find({"habilidades.nome":"Inglês"}).populate('habilidades').exec(function (err, alunos) { if (err) { console.log(err); } else { console.log(alunos); } });