MongoDB: упорядочить по сумме двух полей - PullRequest
8 голосов
/ 29 сентября 2011
SELECT (a+b) as c FROM my_table ORDER BY c ASC;

Как я могу заказать по двум столбцам сумму в Монго?

Ответы [ 2 ]

6 голосов
/ 29 сентября 2011

Вы не можете сделать это легко без дополнительных действий.

Для сортировки по любому вычисленному значению вам нужно сначала сохранить его в документе или в других мирах, вам нужно создать дополнительное поле 'c' и хранить в нем a + b с каждым обновлением / вставкой и только потомсортировать по 'c' как обычно.

4 голосов
/ 08 октября 2015

Вы можете достичь, как этот запрос:

db.mycol.aggregate(
    [{$match:{tag:"xxx"}},
    {$project:{tag:1, count_a:1, count_b:1, factor:{$add: ["$count_a", "$count_b"]}}}, 
    {$sort:{factor:-1}}]
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...