De $pop operator verwijdert het eerste of laatste element van de array, wat niet noodzakelijk de juiste hoeft te zijn.
Als je een specifiek element wilt, kun je $pull het item met gedefinieerde criteria:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Je moet ervoor zorgen dat de waarde in de array uniek is, voor $pull
verwijdert elk element dat overeenkomt met de naam 'John'.
Als er identieke waarden in de array voorkomen, moet u $unset
. gebruiken en $
positionele operator om de waarde van het doelelement in te stellen op null
(helaas zal $unset geen elementen verwijderen) en gebruik dan $pull
om het element te verwijderen met null
waarde. Om dat te doen, moet u ervoor zorgen dat de geldige waarde niet null
. kan zijn . In dat geval zou de code kunnen zijn als:
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )