En Oracle, en lugar de codificar una consulta para cada posible cláusula ORDER BY, puede especificar una función DECODE que evalúe la elección del usuario y altere dinámicamente ORDERY BY de la siguiente manera:
SELECT . . . FROM emp GROUP BY DECODE(i_grouping_col,'E',emp_no,'D',dept_no);
¿Hay alguna forma de practicar la función de decodificación en MongoDB?
Sí, había la función db.collection.group() que se puede usar para hacer lo que está tratando de hacer, sin embargo, está obsoleta a partir de la versión 3.4 de mongodb debido a varias limitaciones.
un ejemplo seria
db.orders.group( { key: { ord_dt: 1, 'item.sku': 1 }, cond: { ord_dt: { $gt: new Date( '01/01/2012' ) } }, reduce: function ( curr, result ) { }, initial: { } } )
el equivalente de SQL es
SELECT ord_dt, item_sku FROM orders WHERE ord_dt > '01/01/2012' GROUP BY ord_dt, item_sku
Puedes leer más al respecto Aquí