Hari ini saya sempat terdiam karena tidak berhasil menemukan dokumentasi bagaimana seharusnya saya melakukan custom query di sails-mongo. Saya agak bingung juga pakainya karena belum terbiasa dan dokumentasi tentang custom query ini tidak ada. Saya butuh melakukan custom query karena sails-mongo tidak menyediakan interface untuk melakukan geospatial query. Setelah mencari di issue tracker sails-mongo, saya menemukan diskusi yang topiknya memang serupa dengan apa yang saya ingin lakukan. Ternyata kalau di sails-mongo untuk melakukan custom query, kita bisa menggunakan native method. Jadi, kurang lebih potongan kode yang perlu saya tulis seperti ini ketika saya mengakses modelnya di controller:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Station.native(function(err, collection) { | |
collection.find({ | |
location: { | |
$near: { | |
$geometry: { | |
type: "Point", | |
// coordinates: [longitude, latitude] | |
coordinates: [50, 50] | |
} | |
}, | |
$maxDistance: 10000 | |
} | |
}); | |
}); |
Jadi kalau ada teman-teman yang memiliki use case yang serupa seperti saya bisa gunakan potongan kode di atas.
Perhatian: Blog post ini ditulis saat saya sedang menggunakan sails-mongo v0.9.7
Pingback: Sails: Setup geospatial index saat bootstraping | Muhammad Ghazali's Online Notes