Можете да опитате по-долу агрегиране в 3.4 за персонализирано сортиране.
Използвайте $add
за сумиране на гласовете за и против в $addFields
за да запазите изчислената стойност като допълнително поле в документа, последвано от $sort
сортиране по поле.
$projectкод>
с изключване, за да изпуснете полето за сортиране, за да получите очаквания резултат.
db.col.aggregate([
{"$addFields":{ "sort_order":{"$add":["$upvotes", "$downvotes"]}}},
{"$sort":{"sort_order":-1}},
{"$project":{"sort_order":0}}
])