Para
$pullAll
para funcionar, você precisa corresponder exatamente ao objeto inteiro e não pode usar apenas um campo (mesmo que seja chamado _id). Então você teria que incluir o nome também no comando de atualização (e os campos também precisam estar na mesma ordem).
O comando que você realmente quer usar é
$pull
, que faz o que você precisa aqui, ou seja, critérios de filtragem correspondentes:Embora seja chamado de "puxar sem todos", ele puxa todos os elementos correspondentes , não apenas um. O "all" significa apenas que você tem um filtro (enquanto pullAll tem vários elementos para corresponder).