Rumah > pangkalan data > MongoDB > teks badan

Bagaimana untuk melaksanakan fungsi pertanyaan lokasi geografi data dalam MongoDB

PHPz
Lepaskan: 2023-09-21 13:07:41
asal
1331 orang telah melayarinya

Bagaimana untuk melaksanakan fungsi pertanyaan lokasi geografi data dalam MongoDB

Cara melaksanakan fungsi pertanyaan lokasi geografi bagi data dalam MongoDB

Abstrak:
Dalam aplikasi dipacu data moden fungsi pertanyaan menjadi lebih penting. Artikel ini akan memperkenalkan cara untuk melaksanakan fungsi pertanyaan lokasi geografi dalam MongoDB dan menyediakan contoh kod khusus.

Pengenalan:
MongoDB ialah pangkalan data bukan perhubungan berciri penuh yang menyokong fungsi pertanyaan lokasi geografi dan boleh menggunakan koordinat geografi untuk mengindeks dan data pertanyaan. Fungsi pertanyaan lokasi geografi sangat berguna dalam banyak senario aplikasi, seperti orang berdekatan, lokasi kedai, perancangan jadual perjalanan, dsb. Dalam artikel ini, kami akan meneroka cara melaksanakan ciri ini dalam MongoDB.

  1. Pemodelan data:
    Untuk melaksanakan pertanyaan lokasi geografi dalam MongoDB, anda perlu memodelkan data terlebih dahulu. Kami boleh menyimpan koordinat latitud dan longitud lokasi sebagai medan tatasusunan, contohnya:

{
"name": "ABC Store",
" lokasi": [ longitud, latitud]
}

  1. Buat indeks geografi:
    Dalam MongoDB, kita perlu mencipta indeks geografi untuk menyokong pertanyaan lokasi geografi. Kita boleh menggunakan jenis indeks 2dsphere, yang boleh digunakan untuk menanyakan lokasi geografi pada sfera dua dimensi.

Kod sampel untuk mencipta indeks geografi dalam MongoDB adalah seperti berikut:

db.collection.createIndex({ lokasi: "2dsphere" })#🎜 🎜## 🎜🎜#

Masukkan data geolokasi:
    Seterusnya, kita boleh masukkan dokumen dengan data geolokasi ke dalam koleksi, contoh kod adalah seperti berikut:

  1. db. collection.insert({
"nama": "ABC store",

"lokasi": [longitud, latitud]
})

#🎜🎜 Pertanyaan Lokasi #Geografi:

Menggunakan MongoDB untuk menanyakan lokasi geografi memerlukan pengendali pertanyaan $near atau $geoNear. $near boleh digunakan untuk menanyakan tempat berdekatan dan $geoNear bukan sahaja boleh menanyakan tempat berdekatan, tetapi juga membuat pertanyaan berdasarkan keadaan penapisan seperti jarak dan hasil pulangan maksimum.

  1. Kod sampel adalah seperti berikut:
// Kedai pertanyaan berdekatan dengan lokasi geografi tertentu, terhad kepada dalam 1000 meter

db.collection. find( {

"lokasi": {

$near: {
  $geometry: {
    "type": "Point",
    "coordinates": [longitude, latitude]
  },
  $maxDistance: 1000
}
Salin selepas log masuk

}
})

// Kedai pertanyaan berdekatan dengan lokasi geografi yang diberikan, terhad kepada 1000 meter , dan kembalikan jarak
db.collection.aggregate([

{

$geoNear: {
  near: {
    "type": "Point",
    "coordinates": [longitude, latitude]
  },
  distanceField: "distance",
  maxDistance: 1000,
  spherical: true
}
Salin selepas log masuk

}
])#🎜🎜:##🎜🎜 #Summary 🎜# Menggunakan fungsi pertanyaan lokasi geografi dalam MongoDB, kami boleh melaksanakan pelbagai aplikasi berkaitan lokasi geografi dengan mudah, seperti orang berdekatan, lokasi kedai, perancangan jadual perjalanan, dsb. Melalui pengenalan dan contoh kod khusus artikel ini, saya percaya pembaca akan mempunyai pemahaman dan penguasaan yang lebih mendalam dalam melaksanakan fungsi pertanyaan lokasi geografi dalam MongoDB.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi pertanyaan lokasi geografi data dalam MongoDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!