Sails: Setup geospatial index saat bootstraping

Di minggu ini saya sedang cukup intensif mengerjakan aplikasi yang menyentuh ranah geospatial. Aplikasi dibangun dengan menggunakan Sails yang merupakan salah satu framework yang powerful untuk digunakan membangun Web API. Beberapa hari yang lalu saya sempat cerita kalau untuk melakukan geospatial query saya harus menggunakan .native method.

Issue terakhir yang dihadapi adalah saya tidak bisa setup geospatial index karena adapter yang digunakan tidak mendukung untuk melakukan hal itu. Jadi saya telusuri langsung ke adapter khusus untuk MongoDB apakah ada petunjuk, ternyata ada dan memang geospatial index belum didukung.

Dari kondisi seperti itu saya balik lagi ke dokumentasi Sails untuk mencari petunjuk dan pencarian berakhir di halaman Bootstrap, per ditulisnya cerita ini, berikut kutipan sebagian dokumentasinya:

Bootstrap

This is an asynchronous boostrap function that runs before your Sails app gets lifted (i.e. starts up). This gives you an opportunity to set up your data model, run jobs, or perform some special logic.

http://sailsjs.org/#!documentation/config.bootstrap

Opportunity to set up your data model, itu adalah pernyataan yang cukup jelas mengenai apa yang bisa saya lakukan terhadap model di Sails. Jadi, saya coba untuk setup geospatial index di fungsi bootstrap ini dengan harapan agar saat aplikasi dijalankan, collection yang perlu diberi geospatial index berhasil dilakukan. Bagaimana dengan hasilnya? Ternyata memang aplikasi berjalan dengan baik dan saya tidak perlu lagi menyentuh shell hanya untuk setup geospatial index secara manual. Mau lihat potongan kode yang saya gunakan? Ini contohnya:

Perhatian: Blog post ini ditulis saat saya sedang menggunakan sails v0.9.11 dan sails-mongo v0.9.7

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s