Les principales différences sont
$near
trie en fonction de la distance à partir d'un point ;$geoWithin
teste 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$near
renvoie le document du plus proche au plus éloigné et tout autre ordre nécessite un tri en mémoire ;$geoWithin
peut être utilisé avec d'autres index de tri$near
nécessite un index géospatial;$geoWithin
fonctionne mieux avec un mais ne l'exige pas$near
n'est pas pris en charge dans les clusters fragmentés - vous devez utiliser legeonear
commande ou$geoNear
plutôt l'étape d'agrégation
Consultez également la documentation pour $near et $geoWithin .