これは、集約フレームワークを使用して行うことができます。 1つのクエリで実行するのは特に効率的ではないため、2つのクエリを実行するSQLで実行しているのと同じことを実行する必要があります。唯一の違いは、MongoDBがそれらを「結合」しないことです。あなた、そしてあなたはアプリケーションでそれをしなければならないでしょう。
2つの集計クエリは次のようになります。
db.collection.aggregate( [
{$project:{name:1, points:{$subtract:["$score_kills","$score_deaths"]}}},
{$sort:{points:-1}},
{$limit:10}
]);
これにより、上位10が表示されます。下位10を取得するには、同じことを行いますが、{points:1}
で並べ替えます。 ボトム10のままになります。