Haben Sie versucht, das Aggregation Framework zu verwenden?
Eine zweistufige Pipeline könnte funktionieren:
- ein $match Phase, die Ihre vorhandene $geoWithin-Abfrage verwendet.
- ein $sort Stufe, die nach
relevance: -1
sortiert
Hier ist ein Beispiel dafür, wie es aussehen könnte:
db.foo.aggregate(
{$match: { "loc": {"$geoWithin":{"$box":[[-103,10.1],[-80.43,30.232]]}} }},
{$sort: {relevance: -1}}
);
Ich bin mir nicht sicher, wie es funktionieren wird. Aber selbst wenn es mit MongoDB 2.4 schlecht ist, könnte es in 2.6/2.5 dramatisch anders sein, da 2.6 Verbesserte Aggregationssortierleistung .