Le $pop supprimera le premier ou le dernier élément du tableau, qui n'est pas nécessairement le bon.
Si vous voulez un élément spécifique, vous pouvez $pull l'élément avec des critères définis :
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Vous devez vous assurer que la valeur dans le tableau est unique, pour $pull supprime tous les éléments correspondant au nom 'John'.
Si des valeurs identiques existent dans le tableau, vous devez utiliser $unset et $ opérateur positionnel pour définir la valeur de l'élément cible sur null (malheureusement, $unset ne supprimera pas les éléments) puis utilisez $pull pour supprimer l'élément avec null évaluer. Pour ce faire, vous devez vous assurer que la valeur valide ne peut pas être null . Dans ce cas, le code pourrait ressembler à :
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )