$pop operator akan menghapus elemen pertama atau terakhir dari larik, yang mungkin belum tentu benar.
Jika Anda menginginkan elemen tertentu, Anda dapat $pull item dengan kriteria yang ditentukan:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
Anda harus memastikan nilai dalam array unik, untuk $pull
menghapus setiap elemen yang cocok dengan nama 'John'.
Jika nilai identik ada dalam array, Anda perlu menggunakan $unset
dan $
operator posisi untuk menyetel nilai elemen target ke null
(sayangnya $unset tidak akan menghapus elemen) lalu gunakan $pull
untuk menghapus elemen dengan null
nilai. Untuk melakukan itu, Anda harus memastikan nilai yang valid tidak boleh null
. Dalam hal ini, kodenya bisa seperti:
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )