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