O $pop O operador removerá o primeiro ou o último elemento da matriz, que pode não ser necessariamente o correto.
Se você quiser um elemento específico, você pode $pull o item com critérios definidos:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Você precisa ter certeza de que o valor no array é único, para
$pull
remove todos os elementos correspondentes ao nome 'John'. Se existirem valores idênticos no array, você precisa usar
$unset
e $
operador posicional para definir o valor do elemento de destino para null
(infelizmente $unset não irá remover elementos) e então use $pull
para remover o elemento com null
valor. Para fazer isso, você deve garantir que o valor válido não possa ser null
. Nesse caso, o código poderia ser assim:model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )