多角形 (単純なボックス) 内のアイテムのマッチングの問題に悩まされています。クエリされたボックス内にあるアイテムが結果にならない理由がわかりません。だからここに私が持っているもの:
>db.testing.getIndexes();
{
"0" : {
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "test.testing",
"name" : "_id_"
},
"1" : {
"v" : 1,
"key" : {
"point" : "2dsphere"
},
"ns" : "test.testing",
"name" : "2dsphere_index"
}
}
これが私のドキュメントです(さまざまな形式をテストしました):
>db.testing.find();
{
"_id" : ObjectId("5439c9c61120c95f4c50a369"),
"point" : {
"lng" : -80.087535,
"lat" : 42.054246
}
}
{
"_id" : ObjectId("5439cc6d1120c95f4c50a36a"),
"point" : {
"type" : "Point",
"coordinates" : [
-80.087535,
42.054246
]
}
}
そして、ここにクエリがあります:
>db.testing.find({"point": {"$geoWithin": {
"$geometry": {
"type": "Polygon",
"coordinates": [
[
[-80.267831,42.050312],
[-80.267831,45.003652],
[-73.362579,45.003652],
[-73.362579,42.050312],
[-80.267831,42.050312]
]
]
}
}}})
しかし問題は、それがゼロの結果を返すことです!
よくわからない場合は、これをコピーするよりも、その点が実際には正方形になっています。
{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[-80.087535,42.054246]},{"type":"Polygon","coordinates":[[[-80.267831,42.050312],[-80.267831,45.003652],[-73.362579,45.003652],[-73.362579,42.050312],[-80.267831,42.050312]]]}]}
ここで確認してください。
私は混乱しています、誰かがこれを手伝ってくれませんか?
前もって感謝します!
更新:
また、これらのポイントは、たとえば次のようにポリゴン領域を減らすと見つかります。
[[-80.159937,42.050312],[-80.05204,42.050312],[-80.05204,42.09646],[-80.159937,42.09646],[-80.159937,42.050312]]
必要であれば、そのようなポイントを 100 ほど提供できます。たとえば、もう 1 つの奇妙な点:
{"type":"Point","coordinates":[-76.537071,42.058731]}
更新:
これは、ポイント コレクション ダンプ (約 700 ポイント) を含むファイルです。