El $pop el operador eliminará el primer o último elemento de la matriz, que puede no ser necesariamente el correcto.
Si desea un elemento específico, puede $pull el elemento con criterios definidos:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Debe asegurarse de que el valor en la matriz sea único, para $pull
elimina todos los elementos que coincidan con el nombre 'John'.
Si existen valores idénticos en la matriz, debe usar $unset
y $
operador posicional para establecer el valor del elemento de destino en null
(desafortunadamente, $unset no eliminará elementos) y luego use $pull
para eliminar el elemento con null
valor. Para hacer eso, debe asegurarse de que el valor válido no pueda ser null
. En ese caso, el código podría ser como:
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )