I have two keys A and B and their existence in the document is mutually exclusive. I have to group by A when A exists and group by B when B exists. So I am $project
$project
if one wants to check $exists with in $cond an alternative approach is to use $not with $cond
{$project: {MyKey: {$cond: [{$not: ["$A"]}, "$B", "$A"]}}}
and truth table for $not is as
Hopes that Helps