ObjectId
s ada untuk situasi di mana Anda tidak memiliki kunci unik untuk setiap dokumen dalam koleksi. Mereka unik, jadi Anda tidak perlu khawatir tentang konflik dan mereka cukup baik dalam penerapan besar tanpa terlalu khawatir (mereka memiliki pro dan kontra, baca lebih lanjut di sini
).
ObjectId
juga berisi stempel waktu klien tempat ObjectId
dihasilkan (kecuali server DB dikonfigurasi untuk menghasilkan semua kunci). Dengan itu, seperti yang Anda perhatikan, Anda dapat menggunakan cap waktu untuk melakukan beberapa operasi tanggal. Namun, jika Anda berencana menggunakan Kerangka Agregasi, Anda akan menemukan bahwa Anda tidak dapat menggunakan ObjectId
dalam operasi tanggal mana pun saat ini (masalah
). Jika Anda ingin menggunakan AF, Anda memerlukan kolom kedua yang berisi tanggal, sayangnya menyimpannya dua kali dengan ObjectId
nilai internal.
Jika Anda dapat yakin bahwa _id
yang Anda hasilkan unik, maka tidak ada banyak alasan untuk menggunakan ObjectId
dalam struktur data Anda.