Chapter ini memperkenalkan salah satu fungsi kueri geospasial MongoDB, yaitu untuk mengkueri data dokumen berdasarkan jarak.
Skenario aplikasi: mencari toko terdekat, dan menemukan orang-orang terdekat.
Tutorial Prasyarat
Pemodelan Data Geospasial MongoDB
Prasyarat untuk mengkueri data berdasarkan jarak adalah sebagai berikut:
- Setiap data dokumen mengandung sebuah bidang yang menyimpan data koordinat, misalnya: bidang
lokasi
menyimpan koordinat sebuah toko. - Membuat indeks spasial 2dsphere atau 2d.
Operator $near
MongoDB menggunakan operator $near untuk mengkueri data dokumen berdasarkan jarak.
Format:
{
<bidang lokasi>: { // Bidang yang menyimpan data koordinat
$near: {
$geometry: { // Tetapkan koordinat referensi untuk perbandingan
type: "Point" ,
coordinates: [ longitude , latitude ]
},
$maxDistance: jarak maksimum, dalam meter,
$minDistance: jarak minimum, dalam meter
}
}
}
Catatan: Data yang dikembalikan oleh kueri $near diurutkan dari terdekat ke terjauh.
Contoh
Misalkan koleksi toko
menyimpan data toko, di mana bidang lokasi
menyimpan koordinat setiap toko. Kueri berikut menemukan toko terdekat dengan saya (jarak minimum 1000 meter, jarak maksimum 5000 meter).
db.toko.find(
{
lokasi:
{ $near :
{
$geometry: { type: "Point", coordinates: [ -73.9667, 40.78 ] }, // Koordinat saya
$minDistance: 1000, // Jarak minimum
$maxDistance: 5000 // Jarak maksimum
}
}
}
)