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

Perhitungan jarak yang salah dengan MongoDB

MongoDB mengasumsikan bahwa koordinat berada di (long, lat) format. Jika Anda menghitung jarak dengan tangan menggunakan Jarak lingkaran besar, Anda akan melihat apa yang terjadi:

> from math import acos, sin, cos, radians
>
> long_x, lat_x = [radians(y) for y in [52.473266, 13.45494]]
> long_y, lat_y = [radians(y) for y in [52.497309, 13.39385]]
>
> acos(sin(lat_x) * sin(lat_y) + cos(lat_x) * cos(lat_y) * cos(long_x - long_y)) * 6371.0
7.27362435031

Google mengambil koordinat dalam (lat, long) format jadi jika Anda memberikan input yang sama interpretasi Google akan seperti di bawah ini:

> acos(sin(long_x) * sin(long_y) + cos(long_x) * cos(long_y) * cos(lat_x - lat_y)) * 6371.0
4.92535867182



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa menghasilkan ObjectId dengan luwak?

  2. MongoDb melalui jndi

  3. Node.js + MongoDB:masukkan satu dan kembalikan dokumen yang baru dimasukkan

  4. Penggunaan opsiFindAndModify tidak didukung

  5. Operator Pipa Agregasi MongoDB $gte