Har du prøvet at bruge aggregeringsrammen?
En to-trins pipeline kan fungere:
- et $match trin, der bruger din eksisterende $geoWithin-forespørgsel.
- en $sort trin, der sorterer efter
relevance: -1
Her er et eksempel på, hvordan det kan se ud:
db.foo.aggregate(
{$match: { "loc": {"$geoWithin":{"$box":[[-103,10.1],[-80.43,30.232]]}} }},
{$sort: {relevance: -1}}
);
Jeg er ikke sikker på, hvordan det vil fungere. Men selvom det er dårligt med MongoDB 2.4, kan det være dramatisk anderledes i 2.6/2.5, da 2.6 vil inkludere forbedret aggregeringssorteringsydelse .