sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongodb:obtenga documentos ordenados por una clasificación dinámica

Soy nuevo en Mongodb y los marcos de agregación, pero considerando la respuesta Tim B di se me ocurrió esto:

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

Usando $project puede remodelar documentos para insertar valores precalculados, en su caso, el campo de clasificación. Después de eso, use $sort puede ordenar los documentos por rango en el orden que desee especificando 1 para ascender o -1 para descender.

Lo siento por el terrible formato del código, traté de hacerlo lo más legible posible.