mongo

Di tempat kerja saya sekarang, database yang dipakai adalah MongoDB. Mongodb ini termasuk ke kategori database yang bekennya disebut NoSQL. Karakteristik database ini yang membedakannya dengan database versi relasional, seperti MySQL atau PostgreSQL, salah satunya adalah schemaless. Table (atau Collection) tidak punya skema yang tetap, sehingga tiap baris (atau document) bisa saja memiliki format kolom (atau atribut) yang berbeda.

Kelebihannya yang saya tahu, kalau tidak salah, database tipe seperti ini itu lebih mudah untuk dilakukan replikasi, sehingga lebih memudahkan untuk scaling, apalagi kalau load-nya sudah tinggi, misalkan diakses ratusan ribu kali per detik.

Setelah menggunakan beberapa saat, saya merasa lebih suka sintaks-nya dibandingkan harus menulis sintaks SQL karena lebih mirip menulis kode program seperti biasa. Kekurangannya sih paling kalau query-nya sudah kompleks maka simbol kurung kurawal (curly braces) terlalu banyak sehingga mungkin agak kurang mudah dibaca / readable.

Tapi saya juga menemukan hal-hal yang kurang mengenakkan lainnya.

Pertama, format output dari object-nya adalah BSON (Binary JSON). Mirip JSON, tapi ada tambahan tipe NumberLong untuk angka yang sangat besar. Tapi format NumberLong ini tidak bisa dilakukan komparasi, sehingga dia harus di-cast dulu ke string (“”+NumberLong(123)). Sayangnya untuk angka yang sangat besar (seperti 21 digit), ketika dilakukan cast ke string, angkanya pertama akan dibulatkan terlebih dahulu karena keterbatasan presisi.

Selain itu javascript memang bahasa yang mengesalkan. Penuh inkonsistensi. Masak fungsi getDate() nilainya dari 1 sampai 31, tapi fungsi getMonths() mulainya dari 0 sampai 11. Ini mungkin video paling terkenal untuk memamerkan kebusukan javascript.

Yah, sabar.

4 thoughts on “mongo

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s