оператор $box за $geoWithin поддържа само документи, базирани на мрежови координати и не поддържа GeoJSON формат на фигури.
В зависимост от структурата на вашите документи и начина, по който ги правите заявки, това вероятно се третира като координати на мрежата, т.е. {geometry: [<long>, <lat>]}
Това може да не е проработило за вашия документ с полигони, защото GeoJSON полигони
изисква допълнителна обвивка на масив. т.е. [[ [<long>, <lat>] ]]
обезсилване на формата на координатната мрежа.
Ако вашите документи са във формат GeoJSON и искате да изберете област, можете да използвате $geometry вместо.
db.places.find(
{
'geometry': {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [ [ [ 0, 0 ], [ 3, 6 ], [ 6, 1 ], [ 0, 0 ] ] ]
}
}
}
}
)
Струва си да се отбележи, че MongoDB Compass геопространствената визуализация в момента (v1.6) все още не поддържа GeoJSON.