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 } } )