MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Entfernen eines Elements aus einem Array in Mongodb

Der $pop Der Operator entfernt das erste oder letzte Element des Arrays, das nicht unbedingt das richtige sein muss.

Wenn Sie ein bestimmtes Element möchten, können Sie $pull das Element mit definierten Kriterien:

   model.registerCompany.findOneAndUpdate({companyKey:"a key"},
    {$pull:{onlineEmployees:"John"}},

Sie müssen sicherstellen, dass der Wert im Array für $pull eindeutig ist entfernt jedes Element, das mit dem Namen 'John' übereinstimmt.

Wenn im Array identische Werte vorhanden sind, müssen Sie $unset verwenden und $ Positionsoperator, um den Wert des Zielelements auf null zu setzen (leider wird $unset keine Elemente entfernen) und dann $pull verwenden um das Element mit null zu entfernen Wert. Dazu müssen Sie sicherstellen, dass der gültige Wert nicht null sein darf . In diesem Fall könnte der Code wie folgt aussehen:

model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } ) 
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )