Imagine que você possui um campo multivalorado em seu tipo de conteúdo e deseja remover um dos itens nele existente. A função para executar esta tarefa chama-se removeItem, porém, ao contrário da função appendItem que você informa o nome do campo e o valor que deseja adicionar, a função removeItem precisa do delta do item que será removido.
Desta forma, seu código poderia ser algo como:
$nid = 1903;
$item_a_remover = 10;
$node = \Drupal::entityTypeManager()->getStorage('node')->load($nid);
foreach ($entity->get('nome_do_campo') as $delta => $item) {
if ($item->target_id == $item_a_remover) {
$node->get('nome_do_campo')->removeItem($delta);
$entity->save();
}
}
A principal diferença está na linha após o if que, quando deseja-se adicionar um novo elemento na lista, é usado:
$node->get('nome_do_campo')->appendItem(['target_id' => $valor]);