Les principales différences sont
$neartrie en fonction de la distance à partir d'un point ;$geoWithinteste le confinement dans un polygone ou multipolygone avec des coordonnées GeoJSON, ou le confinement dans l'une d'un ensemble de formes pour les coordonnées 2d$nearrenvoie le document du plus proche au plus éloigné et tout autre ordre nécessite un tri en mémoire ;$geoWithinpeut être utilisé avec d'autres index de tri$nearnécessite un index géospatial;$geoWithinfonctionne mieux avec un mais ne l'exige pas$nearn'est pas pris en charge dans les clusters fragmentés - vous devez utiliser legeonearcommande ou$geoNearplutôt l'étape d'agrégation
Consultez également la documentation pour $near et $geoWithin .