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

时间:2013-01-29 18:09:58

标签: mongodb double geospatial precision

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

{ _id : 100, pos: { long : 126.9, lat : 35.2 }, type : "restaurant"}

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

2 个答案:

答案 0 :(得分:6)

MongoDB supports double数据类型。它用于所有浮点数。由于MongoDB实现了BSON规范,我们可能会认为它是BSON double的两倍。根据{{​​3}},8 bytes (64-bit IEEE 754 floating point)是{{1}}。并specification 15-17位有效数字。

所以不要担心。

答案 1 :(得分:4)

MongoDB的地理空间索引使用传统的geohash。你可以configure the precision of the hash to be up to 32bits,它相当于大约8或9位小数的精度。所以你会从双打中失去一些精确度,但仍然适合你的应用。