В первом случае (ноль) вы должны использовать оператор $ifNull
.Это вернет значение по умолчанию, если поле пустое или отсутствует.
Во втором случае используйте оператор $cond
.
fieldName:{
$concat:
[
{$ifNull:["$field1", ""]},
"-",
"$field2",
{$cond:[{$eq:['$field3', 'ok']}, "approved", "pending"] }
]
}