MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Rimozione di un elemento dall'array in mongodb

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