$pop operatør vil fjerne første eller sidste element i arrayet, som ikke nødvendigvis er det rigtige.
Hvis du ønsker et specifikt element, kan du $pull varen med definerede kriterier:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Du skal sikre dig, at værdien i arrayet er unik for $pull
fjerner hvert element, der matcher navnet 'John'.
Hvis der findes identiske værdier i arrayet, skal du bruge $unset
og $
positionsoperator for at indstille målelementværdien til null
(desværre vil $unset ikke fjerne elementer) og derefter bruge $pull
for at fjerne elementet med null
værdi. For at gøre det skal du sørge for, at gyldig værdi ikke kan være null
. I så fald kunne koden være sådan:
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )