Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MONGODB:Converter consulta SQL Union


Você pode fazer isso com a estrutura de agregação. Não será particularmente eficiente fazer isso em uma consulta, então você provavelmente deve fazer a mesma coisa que está fazendo no SQL, que está executando duas consultas - a única diferença é que o MongoDB não as "unirá" para você, e você terá que fazer isso no aplicativo.

As duas consultas de agregação seriam:
db.collection.aggregate( [
        {$project:{name:1, points:{$subtract:["$score_kills","$score_deaths"]}}},
        {$sort:{points:-1}},
        {$limit:10}
]);

Isso lhe daria os 10 primeiros. Para obter os 10 últimos, você faria a mesma coisa, mas classificaria por {points:1} o que o deixará com o 10º inferior.