Tidak ada cara langsung untuk menarik/menghapus dengan indeks array. Sebenarnya, ini adalah masalah terbuka http://jira.mongodb.org/browse/SERVER-1014 , Anda dapat memilihnya.
Solusinya adalah menggunakan $unset dan kemudian $pull:
db.lists.update({}, {$unset : {"interests.3" : 1 }})
db.lists.update({}, {$pull : {"interests" : null}})
Pembaruan:seperti yang disebutkan dalam beberapa komentar, pendekatan ini tidak bersifat atomik dan dapat menyebabkan beberapa kondisi balapan jika klien lain membaca dan/atau menulis di antara dua operasi. Jika kita membutuhkan operasi menjadi atom, kita dapat:
- Baca dokumen dari database
- Perbarui dokumen dan hapus item dalam larik
- Ganti dokumen di database. Untuk memastikan dokumen tidak berubah sejak kita membacanya, kita dapat menggunakan pembaruan jika pola saat ini dijelaskan di mongo docs