Als u de $near
. gebruikt commando dan moet je eerst sorteren op afstand of het concept "nabij" slaat echt nergens op. Op een wereldbol kan alles "dichtbij" zijn tot een bepaald punt, het is alleen een kwestie van "hoe dichtbij".
Je hebt hier twee opties:
- beperk de resultaten van
$near
- gebruik de
$within
commando
Ik denk dat je zoekt naar de $within
commando
center = [50, 50]
radius = 10
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
U kunt deze dan sorteren op een andere sleutel:
db.places.find(...).sort({created:1})
Het inside-commando kan echter te veel resultaten opleveren, dus u wilt waarschijnlijk wat logica gebruiken om het aantal items te beperken dat wordt geretourneerd door $within
.
db.places.find(...).limit(50).sort({created:1})
De waarheid is dat als je een specifieke limiet bereikt, de waarde van je $within
commando begint over het algemeen te dalen. Uw klantcode wil misschien controleren of u de maximale resultaten haalt.