MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Trova i post più recenti e più vicini, limite 20

Suppongo che alla fine ti ritroverai con un elenco di post che hanno due dimensioni di ranking discrete, ovvero:

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

Non importa quali siano le unità, diciamo secondi e metri. Se vuoi che entrambi influenzino il grado di ordinamento, ti ritroverai con un algoritmo di classificazione, nella sua forma più semplice qualcosa del genere:

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

Dove C1 e C2 sono costanti che puoi modificare per regolare le ponderazioni. I valori dipenderanno dalle unità che stai utilizzando e dall'influenza sulla classifica che assegni a ciascuna dimensione.

Un'altra opzione potrebbe essere l'ordine prima per aggregato di tempo e poi per distanza, quindi tutti i post di oggi ordinati per distanza; seguito da quello di ieri ordinato per distanza e così via. O viceversa, ordinando per un intervallo di distanza, quindi età, quindi tutto entro (0 - 1000 m) ordinato per età; seguito da tutti entro (1001 - 2000 m), e così via.