如何确保mongodb地理空间坐标的小数精度?

Jos*_*Kim 3 precision double geospatial mongodb

我需要在mongodb中保存经度/纬度坐标,我不知道如何存储它们.我在网上看到的没有示例显示转换为字符串或将小数部分拆分为2个整数.我假设为了启用地理索引,我必须将它们存储为双精度数,例如:

{ _id : 100, pos: { long : 126.9, lat : 35.2 }, type : "restaurant"}
Run Code Online (Sandbox Code Playgroud)

我需要至少6位小数的精度,那么这在mongodb中是如何工作的?

mad*_*ead 6

MongoDB 支持double数据类型.它用于所有浮点数.由于MongoDB实现了BSON规范,我们可能会认为它是BSON double的两倍.这是8 bytes (64-bit IEEE 754 floating point)根据规范.而且它支持 15-17显著数字.

所以请别担心.


mjh*_*jhm 5

MongoDB 的地理空间索引使用传统的geohash。您可以将哈希的精度配置为高达 32bits,这相当于大约 8 或 9 位小数的精度。因此,双打会损失一些精度,但对于您的应用程序来说仍然足够。