Du kan prova nedanstående aggregering i 3.4 för anpassad sortering.
Använd $add
för att summera upp- och nedrösterna i $addFields
för att behålla det beräknade värdet som det extra fältet i dokumentet följt av $sort
sortera på fält.
$project
med undantag för att ta bort sorteringsfältet för att få förväntad utdata.
db.col.aggregate([
{"$addFields":{ "sort_order":{"$add":["$upvotes", "$downvotes"]}}},
{"$sort":{"sort_order":-1}},
{"$project":{"sort_order":0}}
])