La 2dsphere ne prend pas en charge la requête $box. C'est pourquoi votre requête correspond à une analyse complète de la collection.
La boîte documentation indique ce qui suit :
Only the 2d geospatial index supports $box
L'ajout d'un index 2d devrait faire l'affaire, quelque chose comme :
db.property.ensureIndex({"details.lonlat": "2d"});