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

Cómo ordenar con la suma de 2 campos en MongoDB

Puede probar la siguiente agregación en 3.4 para una ordenación personalizada.

Use $add para sumar los votos positivos y negativos en $addFields para mantener el valor calculado como campo adicional en el documento seguido de $sort ordenar por campo.

$project con exclusión para soltar el campo de clasificación para obtener el resultado esperado.

db.col.aggregate([
 {"$addFields":{ "sort_order":{"$add":["$upvotes", "$downvotes"]}}}, 
 {"$sort":{"sort_order":-1}},
 {"$project":{"sort_order":0}}
])