Sie können die folgende Aggregation in 3.4 für eine benutzerdefinierte Sortierung ausprobieren.
Verwenden Sie $add
um die Upvotes und Downvotes in $addFields
zu summieren
um den berechneten Wert als zusätzliches Feld im Dokument beizubehalten, gefolgt von $sort
nach Feld sortieren.
$project
mit Ausschluss, um das Sortierfeld zu löschen, um die erwartete Ausgabe zu erhalten.
db.col.aggregate([
{"$addFields":{ "sort_order":{"$add":["$upvotes", "$downvotes"]}}},
{"$sort":{"sort_order":-1}},
{"$project":{"sort_order":0}}
])