Der $box-Operator für $geoWithin unterstützt nur Dokumente, die auf Gitterkoordinaten und unterstützt GeoJSON nicht Formen-Format.
Abhängig von der Struktur Ihres Dokuments und wie Sie es abfragen, wird dies wahrscheinlich als Gitterkoordinaten behandelt, d. h. {geometry: [<long>, <lat>]}
Dies hat für Ihr Polygondokument möglicherweise nicht funktioniert, weil GeoJSON-Polygone
erfordern einen zusätzlichen Array-Wrapper. also [[ [<long>, <lat>] ]]
Ungültigmachen des Gitterkoordinatenformats.
Wenn Ihre Dokumente im GeoJSON-Format vorliegen und Sie einen Bereich auswählen möchten, können Sie $Geometrie stattdessen.
db.places.find(
{
'geometry': {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [ [ [ 0, 0 ], [ 3, 6 ], [ 6, 1 ], [ 0, 0 ] ] ]
}
}
}
}
)
Erwähnenswert ist, dass MongoDB Compass Geodaten-Visualisierung derzeit (v1.6) unterstützt GeoJSON noch nicht.