MongoDB:按两个字段顺序排序

时间:2011-09-29 11:24:36

标签: mongodb

SELECT (a+b) as c FROM my_table ORDER BY c ASC;

如何在Mongo中按两列总和订购?

2 个答案:

答案 0 :(得分:6)

如果不采取额外措施,你就无法轻松完成任务。

要对任何计算值进行排序,您需要先将其存储在文档中或其他世界中,您需要创建额外的字段“c”,并在每次更新/插入时将+ b存储在其中,然后才对其进行排序c'像往常一样。

答案 1 :(得分:4)

你可以实现这样的查询:

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