Conditional grouping with $exists inside $cond
Use $ifNull
instead of $cond
in your $project
:
{ $project: {MyKey: {$ifNull: ['$A', '$B'] }}}
If A
exists and is not null
its value will be used; otherwise the value of B
is used.
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