Finalmente encontrei a resposta para o meu problema. Teoricamente, a longitude é o eixo x e a latitude é o eixo y. Mas estamos acostumados a latitude-longitude em vez de longitude-latitude...
$near : [msg.lat, msg.lng]
Quando mudei para $near :[msg.lng, msg.lat] , começou a funcionar mesmo com 5KM... Então pedir era o problema.