我正在针对我的开发和生产环境测试地理空间查询。生产服务器是数字海洋VPS服务器。查询在开发机器中工作正常,但是在生产时它返回一个空数组。但是,当我直接从生产服务器的MONGO shell执行查询时,它确实返回结果。以下是查询功能
exports.nearby=function(req,res){
var lat= +req.params.lat,
long= +req.params.long,
distance = +req.params.radius,
cat = req.query.cat || 'auditorium';
Item.find({
"loc": {
$near: {
$geometry: {
type: "Point",
coordinates: [long,lat]
},
$maxDistance: distance
}
},
category: cat
}, function(err,data){
err ? res.json(err) : res.json(data);
});
}
开发环境
本地机器: Ubuntu 14.04,节点:v0.10.29,MongoDB:2.6.4
生产: ubuntu 14.04,node:v0.10.30,MongoDB:2.6.5
任何帮助都非常感谢...谢谢
答案 0 :(得分:0)
您是否在生产数据库中创建了index2d?它是同一个数据库吗?
这对我来说很好用:
var options = { $and:[{location : { $near : [longitude, latitude], $maxDistance : distance/111.12}}]};
User.find(options, '_id location').exec(function (err, users) {