2016-04-14 23 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。謝謝。