MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongodb:obtenha documentos classificados por uma classificação dinâmica


Sou novo no Mongodb e nas estruturas de agregação, mas considerando a resposta Tim B deu cheguei a isso:
db.coll.aggregate(
      { $project : {
                     "ranking" : { 
                                  "$divide" : ["$score", {"$subtract":[new Date(), "$updated"]}]
                                 }
                   }
      },
      { $sort : {"ranking" : 1}})

Usando $project você pode remodelar documentos para inserir valores pré-computados, no seu caso o campo de classificação. Depois disso, usando $sort você pode classificar os documentos por classificação na ordem que desejar, especificando 1 para crescente ou -1 para decrescente.

Desculpem a terrível formatação do código, tentei deixar o mais legível possível.