2016-04-14 53 views
0

可能是一个非常基本的问题。我发送了一个URL(例如localhost:3000/services?lat=50&long=30)。我想抓取网址的纬度和长度,并将其放置在Geospacing查询中。目前的代码不会产生屏幕上的任何东西,但它确实记录正确的价值观为纬度和长:在MongoDB的地理空间和节点中使用URL参数

exports.findAll = function(req, res) { 
    var lat = req.query.lat; 
    var long = req.query.long; 
    console.log(lat + long); 

    db.collection('services', function(err, collection) { 
     collection.find({ loc: { $geoWithin: { $centerSphere: [ [ lat, long ] , 
                100/3963.2 ] } } }).toArray(function(err, items) { 
      res.send(items); 
     }); 

    }); 
}; 
+0

所有参数实际上都是“字符串”,因此您需要在其中您希望使用数值的位置使用“parseFloat”(通常坐标为浮点数)。但是你也有错误的顺序,因为MongoDB中的地理空间数据需要在'['longitude','latitude']的顺序中。这在每个操作员身上都有很好的记录。即。 **重要**框中的['$ centerSphere'](https://docs.mongodb.org/manual/reference/operator/query/centerSphere/),只是在页面的下方。 –

回答

0

Sussed它。

需要在lat和long变量上使用parseInt。谢谢。