sql >> Database >  >> NoSQL >> MongoDB

Vind de meest recente en dichtstbijzijnde berichten, limiet 20

Ik veronderstel dat je uiteindelijk een lijst met berichten krijgt die twee afzonderlijke rangordedimensies hebben, namelijk:

{ age: 86400, distance: 1000 }
{ age: 172800, distance: 5000 }
{ age: 57600, distance: 20000 }
{ age: 288000, distance: 8000 }

Het maakt niet echt uit wat de eenheden zijn, laten we zeggen seconden en meters. Als je wilt dat beide de sorteerrang beïnvloeden, krijg je een rangschikkingsalgoritme, op zijn eenvoudigst zoiets als dit:

rank = (C1 * age) + (C2 * distance)

Waar C1 en C2 zijn constanten die u kunt aanpassen om de wegingen af ​​te stemmen. De waarden zijn afhankelijk van de eenheden die u gebruikt en hoeveel invloed u op de rangschikking toewijst aan elke dimensie.

Een andere optie zou kunnen zijn om eerst te bestellen op basis van tijd en dan afstand, dus alle berichten van vandaag gesorteerd op afstand; gevolgd door de volgorde van gisteren op afstand, enzovoort. Of omgekeerd, sorteren op afstand, dan leeftijd, dus alles binnen (0 - 1000m) gesorteerd op leeftijd; gevolgd door alles binnen (1001 - 2000 m), enzovoort.




  1. Installeer ALLEEN mongo shell, niet mongodb

  2. Hoe moet ik mijn node/express/mongodb-app structureren?

  3. bevolken in mongodb met meteoor

  4. render_template met meerdere variabelen