sql >> Databasteknik >  >> NoSQL >> MongoDB

Hitta de senaste och närmaste inläggen, max 20

Jag antar att du i slutändan får en lista över inlägg som har två diskreta rankningsdimensioner, dvs.:

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

Spelar egentligen ingen roll vad enheterna är, låt säga sekunder och meter. Om du vill att båda ska påverka sorteringsrankningen så slutar du med en rangordningsalgoritm, som enklast så här:

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

Där C1 och C2 är konstanter som du kan justera för att justera viktningarna. Värdena beror på vilka enheter du använder och hur mycket rankningsinflytande du tilldelar varje dimension.

Ett annat alternativ kan vara att beställa först efter en sammanlagd tid och sedan avstånd, så alla inlägg från idag sorterade efter avstånd; följt av gårdagens ordnade efter avstånd, och så vidare. Eller vice versa, sortera efter ett avståndsintervall, sedan ålder, så allt inom (0 - 1000m) sorterat efter ålder; följt av alla inom (1001 - 2000m), och så vidare.




  1. Redis Pub Sub-kanalminne

  2. Hur konverterar man mongodb ISODate till sträng i mongoDB?

  3. hur man hittar distinkta fält av en modell på en och tillstånd i mangust?

  4. MongoDB - Uppröstning/nedröstning av kommentarer med aggregationspipeline