mongoDB地理空间查询$ geoWithin收到错误'循环未关闭'

时间:2017-12-06 02:24:33

标签: mongodb mongodb-query geospatial

我是mongodb地理空间查询的新手,我尝试在多边形中搜索具有如下代码的点:

db.properties.find({
  location:{
    $geoWithin : {
      $geometry : {
        type:"Polygon",
        coordinates: [[
            [104.9172382, 11.57934524],
            [104.9146632, 11.5724502],
            [104.92753788, 11.57976566]
        ]]
        } 
      } 
    }
  })

我的数据表如下所示: enter image description here

我想得到所有点的结果都在polygon.but我真的没有线索

此错误总是弹出

  

| ____ / Mongo服务器错误(MongoQueryException):查询失败   错误代码2和错误消息'循环未关闭:[[104.9172382,   11.57934524],[104.9146632,11.5724502],[104.92753788,11.57976566]]'在服务器上

感谢任何想法!

1 个答案:

答案 0 :(得分:1)

我发现答案是我们需要开始坐标,而近距坐标是相同的值。

db.properties.find({
  location:{
    $geoWithin : {
      $geometry : {
        type:"Polygon",
        coordinates:[
            [
                [ 104.9212999921292 , 11.575955591122819 ] , // start loop
                [ 104.92129194550216 , 11.575198826419006 ] ,
                [ 104.92298978380859 , 11.575238241297862 ] ,
                [ 104.92291736416519 , 11.576023910057827 ] ,
                [ 104.9212999921292 , 11.575955591122819 ] // close loop
            ]   
        ]
       }
     } 
   }
})