MongoDB / Mongoose:使用geoJSON与geoNear方法的距离不正确

时间:2016-06-28 03:00:59

标签: node.js mongodb geojson

我已将模式定义为

var locationSchema = new mongoose.Schema({
  coords: {
    type: [Number],
    index: '2dsphere'
  },
});

geoJSON对象定义为

var geoOptions = {
    spherical: true,
    maxDistance: 5000,
    distanceMultiplier : 0.001,
    num: 10
}
loc.geoNear(point, geoOptions, function(error, results, stats){//do stuff});

其中loc是我的模型实例,我的观点是

var point = {
    type: "Point",
    coordinates: [lng,lat]
};

我的数据库中有两个带有coords的文件

"coords" : [
    18.9164127,
    72.8245292
]

"coords" : [
    18.935197,
    72.8249342
]

我将这两者之间的距离设为0.619 km,因为它应该超过2 km。 无法弄清楚我在做错的地方。任何帮助,将不胜感激。 提前致谢

1 个答案:

答案 0 :(得分:1)

似乎没关系,您是否以[经度,纬度]格式插入坐标?该顺序很重要,是mongo使用geoNear执行查询的顺序。