Můžete to udělat pomocí agregačního rámce. Nebude to zvlášť efektivní dělat to v jednom dotazu, takže byste pravděpodobně měli udělat to samé, co děláte v SQL, který spouští dva dotazy – jediný rozdíl je v tom, že je MongoDB „nespojí“ pro a budete to muset udělat v aplikaci.
Dva agregační dotazy by byly:
db.collection.aggregate( [
{$project:{name:1, points:{$subtract:["$score_kills","$score_deaths"]}}},
{$sort:{points:-1}},
{$limit:10}
]);
To by vám dalo prvních 10. Chcete-li získat dolních 10, udělali byste to samé, ale seřadili byste podle {points:1}
což vám zůstane na spodních 10.