ObjectId pada MongoDB

Apa itu ObjectId pada MongoDB ? Pada artikel ini saya akan coba bahas singkat mengenai ObjectId pada MongoDB. Seperti halnya pada database lainnya, MongoDB memiliki pembeda di setiap baris datanya yang biasa disebut sebagai primari key. MongoDB menyimpan pembeda tersebut pada field “_id”, dengan kata lain setiap document atau saya sebut itu baris dari table pasti memiliki sebuah field “_id”. Lalu apa hubungan antara field “_id” dengan ObjectId ?

Field “_id” pada mongoDb apabila user tidak mengidentifikasikan valuenya, maka field tersebut akan berisi ObjectId. Agar tidak bingung, saya coba jalankan beberapa kode di shell mongoDb saya berikut.

mongodb-tutorial-objectid-1

Pada kode diatas, saya membuat collection / table baru dengan nama dtpenulis dan langsung menambahkan data pada collection tersebut.

Kode untuk menambahkan data :

db.dtpenulis.insert(
{
“nama” : “Budi Raharjo”,
“kota” : “Bandung”,
“tgl_insert” : new Date()
}
);

Kode untuk melihat data penulis :

db.dtpenulis.find().forEach(printjson);

Terlihat pada gambar diatas, terdapat field “_id” dimana field tersebut menjadi sebuah primary key dan sekaligus dijadikan sebagai index pada collection dtpenulis.

Pada proses penambahan data, saya sengaja tidak menambahkan value dari field “_id” agar kita bisa melihat ObjectId yang dihasilkan. Dapat darima kode ObjectId tersebut ?

Seperti yang ada pada dokumentasi ObjectId MongoDB, ObjectId terdiri dari 12-byte BSON, dengan pembagian :
4 byte : detik dari sistem Unix,
3 byte : identiti sebuah mesin
2 byte : identiti sebuah proses,
3 byte : sebuah counter yang didapat dari random nilai.

Pada halaman dokumentasi tersebut pula disebutkan bahwa anda dapat mengetahui kapan ObjectId dibuat dengan mengakses method “getTimestamp()

tutorial-mongodb-objectid-2

Jadi bisa disimpulkan apabila anda membuat dan menyimpan data dengan ObjectId pada field “_id” lalu anda melakukan order by field “_id” maka sama saja melakukan order by waktu proses insert data (waktu create ObjectId).

Mungkin ObjectId ini terlalu panjang, bisa tidak kita buat sendiri / tentukan value field “_id” tersebut ?

Bisa saja, anda dapat menentukan value dari field “_id” tersebut sesuka anda.

tutorial-mongodb-objectId-3

Terlihat pada gambar diatas, saya membuat field “_id” dengan kodefikasi saya sendiri bukan. 🙂

Semoga konsep ObjectId pada MongoDB bisa dipahami.

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: