SELECT (a+b) as c FROM my_table ORDER BY c ASC;
如何在Mongo中按两列总和订购?
答案 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}}]
)