2011-09-29 57 views

回答

6

如果沒有額外的操作,您無法輕鬆完成。

要對任何計算出的值進行排序,您需要首先將其存儲在文檔中或其他世界中,您需要創建額外字段'c',並在每次更新/插入時將+ b存儲在其中,然後才能排序'c'像往常一樣。

+3

這是非常殘酷的解決方案。 :( – fl00r

+0

從工作量mb看起來很殘酷,但從性能方面來看,它總是比任何計算都快。 –

+0

從sql方面看起來很殘酷:) – fl00r

2

可以實現這樣的查詢:

db.mycol.aggregate(
    [{$match:{tag:"xxx"}}, 
    {$project:{tag:1, count_a:1, count_b:1, factor:{$add: ["$count_a", "$count_b"]}}}, 
    {$sort:{factor:-1}}] 
)