Effektiviteten bör vara identisk för båda.
geoNear
Den huvudsakliga begränsningen är att det som ett kommando kan returnera en resultatuppsättning till den maximala dokumentstorleken eftersom alla matchade dokument returneras i ett enda resultatdokument. Det kräver också att ett avståndsfält läggs till i varje resultatdokument, vilket kan eller inte kan vara ett problem beroende på din användning.
$near
är en frågeoperator så resultaten kan vara större än ett enda dokument (de returneras fortfarande i ett enda svar men inte ett enda dokument). Du kan också ställa in det maximala antalet dokument via frågans limit().
Jag brukar rekommendera att användare håller sig till $near
såvida de inte behöver diagnostics
(t.ex. avstånd eller platsmatchad) från geonear
kommando.