#mongodb
#mongodb
Вопрос:
У меня есть что-то вроде следующего:
db.collection.aggregate(
{ $match: {...} },
{
"$addFields": {
"assignee.fullName": { "$concat": ["$assignee.firstName", " ", "$assignee.lastName"] }
}
}
)
Проблема в том, что для документов, у которых нет свойства ‘assignee’, $addFields добавляет это:
assignee: {fullName: null}
Итак, я ищу способ добавить поле только в том случае, если оно существует, в противном случае добавить:
assignee: null
Комментарии:
Ответ №1:
Поскольку вы используете concat, он всегда будет предоставлять новое поле. Итак, что вы можете сделать, так это с помощью своего кода проверить условие
{
$addFields: {
assignee: {
$cond: [
{
$eq: [
"$assignee.fullName",
null
]
},
null,
"$assignee"
]
}
}
}
Рабочая игровая площадка Mongo