Мне нужно сопоставить значения массива с некоторыми другими полями.
Дан следующий набор данных:
{
_id: ObjectId("1234"),
field1: "test1",
field2: "test2",
collection2: ['apple', 'banana', "orange"]
}
Я хочу этот результат:
{
_id:ObjectId("1234")
fruits:"test1 apple banana orange"
}
Я получил это до сих пор (на стадии $ project):
{
'fruits': {
'$concat': [
'$field1', ' ',
'$reduce': {
'input': '$fruits',
'initialValue': '',
'in': {
'$concat': [
'$$value',
{'$cond': [{'$eq': ['$$value', '']}, '', ' ']},
'$$this']
}
}
]
}
}
Я не совсем понимаю, почему это не работает, любая идея?
Спасибо