MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tính toán khoảng cách sai với MongoDB

MongoDB giả định rằng tọa độ nằm trong (long, lat) định dạng. Nếu bạn tính toán khoảng cách bằng tay sử dụng Khoảng cách vòng tròn lớn, bạn sẽ thấy những gì đang xảy ra:

> 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 lấy tọa độ theo (lat, long) vì vậy nếu bạn cung cấp cùng một thông tin đầu vào, cách diễn giải của Google sẽ giống như bên dưới:

> 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. 'nâng cấp' trong một tài liệu nhúng

  2. Cập nhật mô hình với Mongoose, Express, NodeJS

  3. Xóa kiểu xếp tầng trong Mongoose

  4. Truy vấn tổng MongoDb

  5. Phần còn lại của dữ liệu khởi động mùa xuân, ràng buộc @Notnull không hoạt động