Il $pop l'operatore rimuoverà il primo o l'ultimo elemento dell'array, che potrebbe non essere necessariamente quello giusto.
Se desideri un elemento specifico, puoi $pull l'articolo con criteri definiti:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Devi assicurarti che il valore nell'array sia univoco, per $pull
rimuove ogni elemento che corrisponde al nome 'John'.
Se esistono valori identici nell'array, devi usare $unset
e $
operatore posizionale per impostare il valore dell'elemento di destinazione su null
(purtroppo $unset non rimuove gli elementi) e quindi usa $pull
per rimuovere l'elemento con null
valore. Per farlo, devi assicurarti che il valore valido non possa essere null
. In tal caso, il codice potrebbe essere simile a:
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )