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

Bagaimana cara menghapus _id di MongoDB dan mengganti dengan bidang lain sebagai Kunci Utama?

Di mongodb setiap dokumen harus unik, jadi Anda memerlukan bidang unik untuk digunakan sebagai id. Jika Anda tidak menyediakannya, mongodb akan menyediakannya untuk Anda secara otomatis. Namun, jika Anda ingin memberikan id khusus untuk alasan apa pun (meningkatkan kinerja kueri menjadi salah satunya), Anda dapat melakukannya secara manual. Ini dia saran saya:

Jika Anda memasukkan dokumen baru, Anda dapat mengatur bidang _id secara manual seperti:

doc._id = "12312312" //(Or whichever function to generate id you have)
doc.save(...)

Tetapi ketika Anda sudah memiliki dokumen dalam database, Anda tidak dapat mengubahnya lagi. Yang dapat Anda lakukan adalah membuat salinan dokumen, menyimpan dokumen baru dengan data yang sama dan menghapus yang lama:

// Fetch the documents
docs = db.clients.find({})

docs.forEach((doc) => {
   //For each field you copy the values
   new_doc.field = doc.field
   new_doc._id = //YOUR ID FUNCTION 

   // insert the document, using the new _id
   db.clients.insert(new_doc)

   // remove the document with the old _id
   db.clients.remove({_id: doc._id})
}

Pertanyaan ini mirip dengan pertanyaan berikut:

Bagaimana cara memperbarui _id dari satu Dokumen MongoDB?

Semoga jawaban saya membantu



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Urutkan berdasarkan string tanggal (naik) di Mongo

  2. Dapatkan Semua 'dokumen' dari 'koleksi' MongoDB

  3. MongoDB Pengambilan dokumen lambat (Pengindeksan digunakan)

  4. mendapatkan atribut skema dari Model Mongoose

  5. cara memasukkan nomor peningkatan otomatis dengan koleksi luwak saya