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

Como classificar com a soma de 2 campos no MongoDB


Você pode tentar a agregação abaixo em 3.4 para classificação personalizada.

Use $add para somar os votos positivos e negativos em $addFields para manter o valor calculado como o campo extra no documento seguido por $classificar classificar em campo.

$project com exclusão para descartar o campo de classificação para obter a saída esperada.
db.col.aggregate([
 {"$addFields":{ "sort_order":{"$add":["$upvotes", "$downvotes"]}}}, 
 {"$sort":{"sort_order":-1}},
 {"$project":{"sort_order":0}}
])