0
Muhtemelen birileri için gerçekten basit bir soru. Bir URL gönderiyorum (ve örnek localhost:3000/services?lat=50&long=30
). Latifi ve uzun URL'yi almak ve bir Geospacing sorgusuna yerleştirmek istiyorum. Geçerli kod ekranda hiçbir şey üretmez, ancak lat ve long için doğru değerleri kaydeder:MongoDB'nin geospacing ve Node ile URL parametrelerini kullanma
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);
});
});
};
Tüm parametreler aslında "dizgiler" dir, bu nedenle sayısal bir değer beklediğiniz yerde (genellikle koordinatlar) parseFloat'a ihtiyacınız vardır. Ama aynı zamanda MongoDB'deki coğrafi konumun [[boylam ”,“ enlem ”]' de olması gerektiği için yanlış sıralamaya sahipsiniz. Bu aslında her operatörde iyi belgelenmiştir. yani. [** $ centerSphere'] (https://docs.mongodb.org/manual/reference/operator/query/centerSphere/) ** önemli ** kutusunda, sayfanın biraz aşağısında. –