verifique você na cláusula, é o nome da sua coleção? Eu usei o nome do esquema em vez do nome da coleção que resulta em um resultado vazio.
{$lookup:
{
from: 'classes', //check this
localField: 'owner',//**String**
foreignField: '_id', //**ObjectId**
as: 'classes'
}
}