Anda telah menggunakan bilangan bulat normal (MongoInt32) sebagai _id
bidang. Dan MongoInt32 tidak sama dengan MongoID. Mereka adalah dua kelas yang berbeda. Anda seharusnya menghapusnya dengan:
$collection->remove( array( '_id' => new MongoInt32(1) ) );
Informasi Tambahan:
MongoId digunakan sebagai nilai untuk _id
bidang jika Anda tidak tentukan nilai sendiri, seperti dengan:
$collection->insert( array( 'cust_id' => 'abc124' ) );
Jika Anda mengambil dokumen ini, dan var_dump() yang akan Anda lihat:
array(2) {
'_id' =>
class MongoId#6 (1) {
public $$id =>
string(24) "51ee74e944670a09028d4fc9"
}
'cust_id' =>
string(6) "abc124"
}
Catatan di dokumen berarti Anda tidak dapat menghapus dokumen itu sekarang dengan:
$collection->remove( array( '_id' => '51ee74e944670a09028d4fc9' ) );
Tetapi sebaliknya Anda harus menggunakan:
$collection->remove( array( '_id' => new MongoID( '51ee74e944670a09028d4fc9' ) ) );
Sebagai poin terakhir saya ingin menyampaikan bahwa Anda tidak benar-benar harus menggunakan new MongoInt32(1)
di tempat pertama, Anda bisa menggunakan:
$document = array (
'_id' => 1,
'cust_id' => 'abc124'
);
Anda hanya perlu MongoInt32/MongoInt64 jika Anda menggunakan platform 32-bit (atau Windows) dan perlu menangani jumlah besar.