MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Supprimer un élément du tableau dans mongodb

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