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

Panjang ID Koleksi di MongoDB

Mengapa default _id string hex 24 karakter?

Pengidentifikasi unik default yang dihasilkan sebagai kunci utama (_id ) untuk dokumen MongoDB adalah ObjectId . Ini adalah nilai biner 12 byte yang sering direpresentasikan sebagai string hex 24 karakter, dan salah satu jenis bidang standar yang didukung oleh MongoDB Spesifikasi BSON .

12 byte dari ObjectId dibangun menggunakan:

  • nilai 4 byte yang mewakili detik sejak zaman Unix
  • pengidentifikasi mesin 3 byte
  • id proses 2 byte
  • penghitung 3 byte (dimulai dengan nilai acak)

Apa pentingnya ObjectId?

ObjectIds (atau pengidentifikasi serupa yang dihasilkan menurut GUID formula) memungkinkan pengidentifikasi unik untuk dihasilkan secara independen dalam sistem terdistribusi.

Kemampuan untuk menghasilkan ID unik secara mandiri menjadi sangat penting saat Anda meningkatkan ke beberapa server aplikasi (atau mungkin beberapa node basis data dalam kluster yang di-sharding ). Anda tidak ingin memiliki hambatan koordinasi pusat seperti penghitung urutan (mis. seperti yang mungkin Anda miliki untuk kunci utama yang bertambah secara otomatis), dan Anda ingin memasukkan dokumen baru tanpa risiko bahwa pengidentifikasi baru akan berubah menjadi duplikat.

ObjectId biasanya dibuat oleh MongoDB driver klien Anda , tetapi juga dapat dibuat di server MongoDB jika driver klien atau kode aplikasi Anda atau belum menambahkan _id lapangan.

Apakah saya harus menggunakan ObjectId default?

Tidak. Jika Anda memiliki pengenal unik yang lebih cocok untuk digunakan, Anda selalu dapat memberikan nilai Anda sendiri untuk _id . Ini bisa berupa nilai tunggal atau nilai gabungan menggunakan beberapa bidang.

Kendala utama pada _id nilainya harus unik untuk koleksi dan Anda tidak dapat memperbarui atau menghapus _id untuk dokumen yang ada.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kebocoran memori di kursor MongoDB (OutOfMemory)?

  2. Bagaimana saya bisa berbagi model luwak di antara 2 aplikasi?

  3. ClusterControl - Manajemen Cadangan Tingkat Lanjut - MongoDB

  4. Uji Unit dengan Luwak

  5. Panduan untuk MongoDB dengan Java