Saya, secara pribadi, menyalahkan kode Anda. Saya mengatasi ini dengan sangat baik dalam aplikasi saya dengan mengkodekan dengan cara yang benar. Saya mengonversi ke string dalam kode untuk membandingkan dan saya memastikan bahwa apa pun yang terlihat seperti ObjectId
sebenarnya digunakan sebagai ObjectId
.
Baik untuk dicatat bahwa di antara ObjectId
(http://docs.mongodb.org/manual/reference/object-id/) dan representasi hex sebenarnya ada perbedaan 12 byte, ObjectId
menjadi 12 byte dan representasi heksanya adalah 24.
Tidak hanya tentang efisiensi penyimpanan tetapi juga tentang indeks; bukan hanya karena lebih kecil tetapi juga karena ObjectId
dapat digunakan dengan cara khusus untuk memastikan bahwa hanya sebagian indeks yang dimuat; bagian-bagian yang digunakan. Ini menjadi paling terlihat saat memasukkan, di mana hanya bagian terbaru dari indeks yang perlu dimuat untuk memastikan keunikan. Anda tidak dapat menjamin perilaku seperti itu dengan representasi heksanya.
Saya sangat menyarankan Anda untuk tidak menggunakan OjbectId
representasi heksagonal. Jika Anda ingin "membuat hidup Anda lebih mudah", Anda sebaiknya membuat _id
yang berbeda yang lebih kecil tapi entah bagaimana sama unik dan ramah indeks.