我需要在mongodb中保存经度/纬度坐标,我不知道如何存储它们。我在网上看到的没有示例显示转换为字符串或将小数部分拆分为2个整数。我假设为了启用地理索引,我必须将它们存储为双精度数,例如:
{ _id : 100, pos: { long : 126.9, lat : 35.2 }, type : "restaurant"}
我需要至少6位小数的精度,那么这在mongodb中是如何工作的?
答案 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位小数的精度。所以你会从双打中失去一些精确度,但仍然适合你的应用。