sql >> Database >  >> NoSQL >> MongoDB

Efficiënt sorteren van de resultaten van een mongodb geospatiale query

Heb je geprobeerd het aggregatieraamwerk te gebruiken?

Een pijplijn met twee fasen zou kunnen werken:

  1. een $match stage die uw bestaande $geoWithin-query gebruikt.
  2. een $sort fase die sorteert op relevance: -1

Hier is een voorbeeld van hoe het eruit zou kunnen zien:

db.foo.aggregate(
    {$match: { "loc": {"$geoWithin":{"$box":[[-103,10.1],[-80.43,30.232]]}} }},
    {$sort: {relevance: -1}}
);

Ik weet niet zeker hoe het zal presteren. Maar zelfs als het slecht is met MongoDB 2.4, kan het dramatisch anders zijn in 2.6/2.5, aangezien 2.6 verbeterde sorteerprestaties bij aggregatie .



  1. Groep en som volgens het positiepercentage MongoDb Aggregation

  2. Laatst ingevoegde document-ID in MongoDB ophalen met Java-stuurprogramma

  3. Hoe herken ik een Redis-geheugenlek?

  4. Hoe kan ik wachten tot een docker-container operationeel is?