MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Намерете най-новите и най-близките публикации, ограничение до 20

Предполагам, че в крайна сметка ще получите списък с публикации, които имат две отделни измерения за класиране, т.е.:

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

Всъщност няма значение какви са мерните единици, да кажем секунди и метри. Ако искате и двете да повлияят на ранга на сортиране, тогава ще получите алгоритъм за класиране, най-просто нещо като това:

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

Където C1 и C2 са константи, които можете да променяте, за да настроите претеглянията. Стойностите ще зависят от това какви единици използвате и колко влияние за класиране присвоявате на всяко измерение.

Друга опция може да бъде подреждане първо по съвкупно време, след това по разстояние, така че всички публикации от днес да бъдат подредени по разстояние; следван от вчерашния, подреден по разстояние и т.н. Или обратното, подреждане по диапазон на разстояние, след това възраст, така че всички в рамките на (0 - 1000 м) подредени по възраст; последвано от всички в рамките (1001 - 2000 м) и т.н.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Заявка за търсене в MongoDB само в определени часове

  2. Възможно ли е да преименувате полета в изходите на Mongo заявка в PyMongo?

  3. Масив за групова актуализация на съответстващ поддокумент в Mongodb

  4. Mongodb repica задава конфигурация във файл със свойства

  5. преди и след премахване на Middleware не се задейства