我在redis数据库中有4套,我希望靠近所有4套的位置并作为api结果发送回来,下面的代码工作正常我只使用1套,但我的要求是得到从所有4套,请帮助我。
router.route('/get_near_by').post(function(req, res) {
var geo = georedis.initialize(client, {
zset: 'LocationsSet',
nativeGeo: false
});
var luxuryXL = geo.addSet('luxuryXL');
var luxurySedan = geo.addSet('luxurySedan');
var sedanFour = geo.addSet('sedanFour');
var sedanSix = geo.addSet('sedanSix');
var lat = req.body.lat;
var lng = req.body.lng;
var result = [];
var options = {
withCoordinates: true, // Will provide coordinates with locations, default false
withHashes: true, // Will provide a 52bit Geohash Integer, default false
withDistances: true, // Will provide distance from query, default false
order: 'ASC', // or 'DESC' or true (same as 'ASC'), default false
units: 'km', // or 'km', 'mi', 'ft', default 'm'
count: 10, // Number of results to return, default undefined
accurate: true // Useful if in emulated mode and accuracy is important, default false
};
luxuryXL.nearby({latitude: lat, longitude: lng}, 5000, options, function(err, luxuryXL){
if(err) {
console.error(err)
} else {
return res.send(luxuryXL);
}
});
});
以下是我尝试的代码,但它们无效 -
luxuryXL.nearby({latitude: lat, longitude: lng}, 5000, options, function(err, luxuryXL){
if(err) {
console.error(err)
} else {
result['a'] = res.send(luxuryXL);
}
});
答案 0 :(得分:0)
您可以平行或顺序查询4组并发送它们。我建议使用像async或bluebird这样的promises来进行并行查询并将它们连接在一起并发送响应。希望这有帮助,如果您有任何其他问题,请告诉我