2017-12-05 13 views
0

Iは、構造が多くの文書のコレクションを持っている:地理空間クエリが機能しません。

{ 
    "_id" : ObjectId("5a26b07414e7d436786cfe07"), 
    "location" : { 
     "coordinates" : [ 
      -30.0000019073486, 
      25.0000019073486 
     ], 
     "type" : "Point" 
    }, 
    "refDate" : ISODate("2017-11-23T05:00:00.000Z"), 
    "hourProg" : 0, 
    "value1" : 1, 
    "value2" : 4 
} 

経度の範囲は[-30です。 48]

緯度の範囲は[25; 55]

このコレクションには、約60万レコードが含まれています。

Iは2d_sphereインデックス設定:私はTHWクエリ実行する場合

db.myCollection.find({ 
    location : { 
     $near : { 
      $geometry : { 
       type : "Point" , 
       coordinates : [-25.27, 25.44] 
      } 
     } 
    } 
}).count() 

を私はすべてのレコードを取得し、私は期待していた:db.myCollection.createIndex({ "2dsphere" 位置を})ほんのわずかのレコード(私の座標の近く!)

何か提案がありますか? ありがとうございます

+0

申し訳ありませんが、$ nearの地理空間クエリは、すべてのレコードを距離別にdescモードで並べ替えます。 –

答えて

0

可能性のある問題は、最大距離を設定していないためです。

find()内には、このような機能があります。

{ 
    <location field>: { 
    $near: { 
     $geometry: { 
      type: "Point" , 
      coordinates: [ <longitude> , <latitude> ] 
     }, 
     $maxDistance: <distance in meters>, 
    } 
    } 
} 
関連する問題