Для данной таблицы:
id | val_a | val_b | mult | category
------------------------------------
0 | 1 | 2 | 9 | A
1 | 0 | 3 | 5 | B
2 | 0.5 | 4 | 6 | C
следующий запрос в MySQL
SELECT * FROM table WHERE category IN ('A','B','C')
AND IF( val_a > 0, val_a, val_b ) * mult = (SELECT MAX( IF( val_a > 0, val_a, val_b ) * mult ) FROM table WHERE category IN ('A','B','C')) LIMIT 1;
найдет умножения val_a * mult для каждой строки (если val_a == 0: val_b * mult )
0) 1*9 = 9
1) 3*5 = 15
2) 0.5*4 = 2
, затем найдите максимум всех ответов и, наконец, верните строку с идентификатором: 1
1) 15
Как мне собрать то же самое в Mongoose? Даже частичный ответ поможет двигаться вперед и учиться.
Пытался начать с http://www.querymongo.com/, но безуспешно.