sql >> Base de Datos >  >> RDS >> Mysql

MONGODB:Convertir consulta SQL Union

Puede hacer esto con el marco de agregación. No será particularmente eficiente hacerlo en una consulta, por lo que probablemente debería hacer lo mismo que está haciendo en SQL que ejecuta dos consultas; la única diferencia es que MongoDB no las "unirá" para usted, y tendrá que hacerlo en la aplicación.

Las dos consultas de agregación serían:

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

Esto le daría los 10 primeros. Para obtener los 10 últimos, haría lo mismo pero ordenaría por {points:1} lo que te dejará con los últimos 10.