MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana saya bisa menemukan tempat terdekat dengan garis lintang dan garis bujur di mongodb?

Hai Untuk kasus Anda, saya pikir Anda harus mengubah dokumen di atas seperti di bawah ini

    {
    "_id" : ObjectId("545749dba2b0b4cf603a7546"),
    "city" : "B",
    "placeName" : "A",
    "loc" : {
        "lon" : 51.10682735591432,
        "lat" : -114.11773681640625
    }
}
{
    "_id" : ObjectId("545749f3a2b0b4cf603a7547"),
    "city" : "B1",
    "placeName" : "A1",
    "loc" : {
        "lon" : 51.09144802136697,
        "lat" : -114.11773681640625
    }
}

Setelah itu indexing dokumen-dokumen di atas seperti di bawah ini

db.collectionName.ensureIndex({loc:"2d"})

Jika pengindeksan berjalan dengan baik maka tulis query berikut untuk mengetahui dokumen terdekat

db.location.find({loc: {$near:[51,-114]}})

untuk bantuan lebih lanjut, Anda harus merujuk mongo ini $near dan $geoNear klik di sini

dan maaf untuk golang karena saya tidak tahu lebih banyak tentang golang

untuk golang

var places []Place
lat := 51.515614
long := -0.268998
err = coll.Find(bson.M{"loc": bson.M{"$near": []float64{long, lat}, "$maxDistance" :      0.056}}).All(&places)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kembalikan hanya elemen sub-dokumen yang cocok dalam array bersarang

  2. Bisakah Anda menggunakan kueri pencarian di GridFS menggunakan API javascript?

  3. Cara mendapatkan database Mongo yang ditentukan dalam string koneksi di C #

  4. Bagaimana cara menampilkan gambar yang diunggah ke sisi server sekali lagi di browser menggunakan tumpukan MEAN?

  5. MongoDB:memperbarui array dalam array