MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongodb :Obtenez des documents triés par un classement dynamique

Je suis nouveau sur Mongodb et les frameworks d'agrégation mais compte tenu de la réponse Tim B j'ai trouvé ça :

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

Utilisation de $project vous pouvez remodeler les documents pour insérer des valeurs précalculées, dans votre cas le champ de classement. Après cela, utilisez $sort vous pouvez trier les documents par rang dans l'ordre de votre choix en spécifiant 1 pour croissant ou -1 pour décroissant.

Je suis désolé pour le formatage du code terrible, j'ai essayé de le rendre aussi lisible que possible.