Você tem que dividir sua interface de repositório em duas.
O primeiro - "Custom" contendo métodos que você implementa manualmente seria:
public interface TopRepositoryCustom {
long getPublishedTopoCount();
}
Segundo para métodos gerados:
public interface TopRepository extends MongoRepository<Topo, String>, TopRepositoryCustom {
@Query("{'name':?0}")
Topo findByName(String name);
}
Então você só precisa implementar o primeiro repositório e lembrar de seguir a convenção de nomenclatura adequada. Veja mais em:spring-data mongodb custom deployment PropertyReferenceException e Spring Data MongoDB Referência de implementações personalizadas