Mongodb Exception“不在[-180,180]的区间内

时间:2013-12-04 06:51:43

标签: mongodb exception location

我有一个集合'地方',一个文件如下

{ 
"_id" : ObjectId("52401a7267778834a23a54a2"),
"userid" : "123",
"loc" : {
    "lng" : 77.6166685, 
    "lat" : 12.9361732 
},
"t" : ISODate("2013-04-23T10:39:46.540Z") 

}

我想查找用户位置的用户ID 234位于1公里以内[77.6166685,12.9361732]附近

但以下查询无效

db.place.find({{"userid":"234","loc":{"$near":{"$geometry":{"type":"point","coordinates":[77.6166685,12.9361732]},"$maxDistance":1000}}})

显示错误,如下所示

error: {
    "$err" : "point not in interval of [ -180, 180 ] :: caused by :: { 0: 0.0, 1: 250.0 }",
    "code" : 16433

}

这是什么错误,我该如何纠正?

1 个答案:

答案 0 :(得分:3)

我认为问题如下:

你的文档有一个适用于“2d”索引的表单,(你还没有告诉你有什么样的索引),你试图用query which查询它适用于“2dsphere”索引。所以你有两个选择:

  • 将文档转换为GeoJSON格式(此处未指定几何图形),放置2dsphere索引并以此方式查询
  • 不执行任何操作,并使用“2d”索引{/ 3}}方式查询

我是以第二种方式完成的:

db.d.find({
  "loc":{
      "$near": [77.6166685,12.9361732],
      "$maxDistance":1000
  }
})

并得到了正确的结果。