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