$ pop toán tử sẽ xóa phần tử đầu tiên hoặc cuối cùng của mảng, phần tử này có thể không nhất thiết phải là phần tử phù hợp.
Nếu bạn muốn một phần tử cụ thể, bạn có thể $ pull mặt hàng có tiêu chí xác định:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Bạn phải đảm bảo giá trị trong mảng là duy nhất, cho $pull xóa mọi phần tử khớp với tên 'John'.
Nếu các giá trị giống hệt nhau tồn tại trong mảng, bạn cần sử dụng $unset và $ toán tử vị trí để đặt giá trị phần tử đích thành null (rất tiếc $ unset sẽ không xóa các phần tử) và sau đó sử dụng $pull để xóa phần tử có null giá trị. Để làm điều đó, bạn phải đảm bảo giá trị hợp lệ không được null . Trong trường hợp đó, mã có thể giống như:
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )