sql >> Databáze >  >> NoSQL >> MongoDB

Najít nejnovější a nejbližší příspěvky, limit 20

Předpokládám, že nakonec skončíte se seznamem příspěvků, které mají dvě samostatné dimenze hodnocení, tj.:

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

Nezáleží na tom, jaké jsou jednotky, řekněme sekundy a metry. Pokud chcete, aby obojí ovlivnilo pořadí řazení, skončíte s algoritmem hodnocení, nejjednodušším způsobem:

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

Kde C1 a C2 jsou konstanty, které můžete vyladit pro vyladění vah. Hodnoty budou záviset na tom, jaké jednotky používáte a jak velký vliv na hodnocení přiřadíte každé dimenzi.

Další možností by mohlo být řazení nejprve podle časového úhrnu a poté vzdálenosti, takže všechny příspěvky z dneška seřazené podle vzdálenosti; následuje včerejší seřazené podle vzdálenosti a tak dále. Nebo naopak, řazení podle vzdálenosti, pak věku, takže vše v rámci (0 - 1000 m) seřazené podle věku; následuje vše v rámci (1001 - 2000 m) a tak dále.




  1. import mongoose schématu do jiného souboru schématu způsobí, že importované schéma nebude definováno

  2. Zásuvka modulu nebyla nalezena lua

  3. Hledání duplicitních hodnot v poli MongoDB

  4. Jak nastavím cluster elasticache redis jako slave?