Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MONGODB:SQL Union-Abfrage konvertieren

Sie können dies mit dem Aggregation Framework tun. Es ist nicht besonders effizient, dies in einer Abfrage zu tun, daher sollten Sie wahrscheinlich dasselbe tun wie in SQL, das zwei Abfragen ausführt - der einzige Unterschied besteht darin, dass MongoDB sie nicht "vereint". Sie müssen dies in der Anwendung tun.

Die beiden Aggregationsabfragen wären:

db.collection.aggregate( [
        {$project:{name:1, points:{$subtract:["$score_kills","$score_deaths"]}}},
        {$sort:{points:-1}},
        {$limit:10}
]);

Dies würde Ihnen die Top 10 geben. Um die unteren 10 zu erhalten, würden Sie dasselbe tun, aber nach {points:1} sortieren was Sie mit den letzten 10 verlassen wird.