L'operatore $box per $geoWithin supporta solo documenti basati su coordinate della griglia e non supporta GeoJSON formato delle forme.
A seconda della struttura dei tuoi documenti e di come li stai interrogando, questo è probabilmente considerato come coordinate della griglia, ad esempio {geometry: [<long>, <lat>]}
Questo potrebbe non aver funzionato per il tuo documento sui poligoni perché Poligoni GeoJSON
richiedono un wrapper di array aggiuntivo. cioè [[ [<long>, <lat>] ]]
invalidando il formato delle coordinate della griglia.
Se i tuoi documenti sono in formato GeoJSON e desideri selezionare un'area, puoi utilizzare $geometry invece.
db.places.find(
{
'geometry': {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [ [ [ 0, 0 ], [ 3, 6 ], [ 6, 1 ], [ 0, 0 ] ] ]
}
}
}
}
)
Vale la pena notare che MongoDB Compass la visualizzazione geospaziale attualmente (v1.6) non supporta ancora GeoJSON.