MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara menghapus dokumen yang direferensikan oleh id di mongoDB dari php?

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memperbaiki Kesalahan Halaman di MongoDB

  2. Panjang nilai bidang string di mongoDB

  3. Pustaka janji default Mongoose tidak digunakan lagi di tumpukan MEAN

  4. Manual Audit Database Sumber Terbuka DevOps - Semua Yang Harus Anda Ketahui

  5. Luwak Tidak Membuat Indeks