operátor $box pro $geoWithin podporuje pouze dokumenty založené na souřadnicích mřížky a nepodporuje GeoJSON formát tvarů.
V závislosti na struktuře vašich dokumentů a způsobu, jakým se na ně dotazujete, je to pravděpodobně považováno za souřadnice mřížky, tj. {geometry: [<long>, <lat>]}
To možná nefungovalo pro váš dokument polygonů, protože Polygony GeoJSON
vyžadují další obálku pole. tj. [[ [<long>, <lat>] ]]
zneplatnění formátu souřadnic mřížky.
Pokud jsou vaše dokumenty ve formátu GeoJSON a chtěli byste vybrat oblast, můžete použít $geometry namísto.
db.places.find(
{
'geometry': {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [ [ [ 0, 0 ], [ 3, 6 ], [ 6, 1 ], [ 0, 0 ] ] ]
}
}
}
}
)
Stojí za zmínku, že MongoDB Compass geoprostorová vizualizace aktuálně (v1.6) zatím nepodporuje GeoJSON.