MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongodb:Posortuj dokumenty według dynamicznego rankingu

Jestem nowy w Mongodb i frameworkach agregacji, ale biorąc pod uwagę odpowiedź Tim B dałem wymyśliłem to:

db.coll.aggregate(
      { $project : {
                     "ranking" : { 
                                  "$divide" : ["$score", {"$subtract":[new Date(), "$updated"]}]
                                 }
                   }
      },
      { $sort : {"ranking" : 1}})

Korzystanie z $project możesz zmienić kształt dokumentów, aby wstawić wstępnie obliczone wartości, w twoim przypadku pole rankingu. Następnie używając $sort możesz sortować dokumenty według rangi w wybranej przez siebie kolejności, określając 1 dla rosnącej lub -1 dla malejącej.

Przepraszam za okropne formatowanie kodu, starałem się, aby był jak najbardziej czytelny.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Loopback ValidationError:instancja „Role” jest nieprawidłowa. Szczegóły:„nazwa” już istnieje (wartość:admin)

  2. Jak zwrócić tylko zagnieżdżone dokumenty tablicy ze wszystkich dokumentów?

  3. Ściągawka wydajnościowa dla MongoDB

  4. db.collectionNames nie działa w Node.js

  5. node.js wyrazić komunikaty zapisu mongodb?