MongoDB地理空间查询返回null数组

时间:2014-10-30 02:07:51

标签: node.js mongodb mongoose geospatial

我正在针对我的开发和生产环境测试地理空间查询。生产服务器是数字海洋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

任何帮助都非常感谢...谢谢

1 个答案:

答案 0 :(得分:0)

您是否在生产数据库中创建了index2d?它是同一个数据库吗?

这对我来说很好用:

var options = { $and:[{location : { $near : [longitude, latitude], $maxDistance : distance/111.12}}]};
User.find(options, '_id location').exec(function (err, users) {