$box operator dla $geoWithin obsługuje tylko dokumenty oparte na współrzędnych siatki i nie obsługuje GeoJSON format kształtów.
W zależności od struktury dokumentów i sposobu, w jaki je wysyłasz, jest to prawdopodobnie traktowane jako współrzędne siatki, tj. {geometry: [<long>, <lat>]}
To mogło nie zadziałać w przypadku twojego dokumentu wielokątów, ponieważ Wielokąty GeoJSON
wymagają dodatkowego opakowania tablicy. np. [[ [<long>, <lat>] ]]
unieważnienie formatu współrzędnych siatki.
Jeśli Twoje dokumenty są w formacie GeoJSON i chcesz wybrać obszar, możesz użyć $geometry zamiast.
db.places.find(
{
'geometry': {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [ [ [ 0, 0 ], [ 3, 6 ], [ 6, 1 ], [ 0, 0 ] ] ]
}
}
}
}
)
Warto zauważyć, że Kompas MongoDB wizualizacja geoprzestrzenna obecnie (v1.6) nie obsługuje jeszcze GeoJSON.