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