As principais diferenças são
$near
classifica com base na distância de um ponto;$geoWithin
testes de contenção em um polígono ou multipolígono com coordenadas GeoJSON, ou contenção em um de um conjunto de formas para coordenadas 2D$near
retorna o documento do mais próximo para o mais distante e qualquer outro pedido requer classificação na memória;$geoWithin
pode ser usado com outros índices de classificação$near
requer um índice geoespacial;$geoWithin
funciona melhor com um, mas não requer isso$near
não é compatível com clusters fragmentados - você precisa usar ogeonear
comando ou$geoNear
estágio de agregação em vez disso
Confira também a documentação de $near e $geoWithin .