2011-09-29 19 views

Respuesta

6

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.

+3

Es una solución muy brutal. :( – fl00r

+0

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. –

+0

Parece brutal desde el lado sql :) – fl00r

2

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}}] 
) 
Cuestiones relacionadas