我正在尝试使用$ geoNear mongoDB函数查找两点之间的距离并收到以下错误:
MongoError:错误处理查询:ns = Driveoo.vehiclesTree:GEONEAR
field = location maxdist = 10000 isNearSphere =0↵排序:{}↵项目:{}↵计划者 返回错误:找不到$ geo的索引附近queryCar搜索 失败
请在下面找到我的代码:
exports.getNearestVehicles = function (req, res, next) {
Vehicle.find({
location: {
$near: {
$maxDistance: 10000,
$geometry: {
type: "Point",
coordinates: [req.query.lat, req.query.long]
}
}
}
}).then( results => {
return responseHandler.resHandler(true,JSON.stringify(results,0,2),"Car Response", res, 200);
})
.catch(error=> {
return responseHandler.resHandler(false,null,error+"Car Search Failed", res, 200);
});
}
有人可以解决我在哪里做错了吗?
答案 0 :(得分:0)
您是否在查询之前创建了2d球面索引?
您可以按以下步骤创建索引
db.createIndex({'location','2dSphere'})
在以上查询中,您也没有使用geoNear,$geoNear 通常与聚合一起使用。