SELECT (a+b) as c FROM my_table ORDER BY c ASC;
¿Cómo puedo ordenar por dos columnas en Mongo?MongoDB: ordena por dos campos suma
SELECT (a+b) as c FROM my_table ORDER BY c ASC;
¿Cómo puedo ordenar por dos columnas en Mongo?MongoDB: ordena por dos campos suma
No puede hacerlo fácilmente sin una acción adicional.
Para ordenar cualquier valor calculado que necesita para almacenarlo en un documento primero o en otros mundos, necesita crear un campo extra 'c', y almacenar a + b en cada actualización/inserción y solo luego ordenar 'c' como de costumbre.
se puede lograr como esta consulta:
db.mycol.aggregate(
[{$match:{tag:"xxx"}},
{$project:{tag:1, count_a:1, count_b:1, factor:{$add: ["$count_a", "$count_b"]}}},
{$sort:{factor:-1}}]
)
Es una solución muy brutal. :( – fl00r
Por la cantidad de trabajo mb se ve brutal, pero desde el lado del rendimiento siempre es más rápido que cualquier cálculo. –
Parece brutal desde el lado sql :) – fl00r