такой список документов:
[
{"name": "name 1", "items": []},
{"name": "name 1", "items": [{"name": "item1"}, {"name": "item2"}]},
{"name": "name 2", "items": [{"name": "item3"}, {"name": "item4"}]},
{"name": "name 2", "items": [{"name": "item3"}]},
{"name": "name 2", "items": []}
]
как сделать так, чтобы такая структура развернуть в:
[
{"name": "name 1", "item": ""},
{"name": "name 1", "item": "item1"},
{"name": "name 1", "item": "item2"},
{"name": "name 2", "item": "item3"},
{"name": "name 2", "item": "item4"},
{"name": "name 2", "item": "item3"},
{"name": "name 2", "items": ""}
]
т.е. так чтобы элементы исходного массива items стали строками выборки + к ним добавились остальные поля выборки?
суть такая, что мне нужно сделать дальше $group по item, если поле не пустое, а если пустое, то по name (но это уже не сложно через $project + $cond решается)
с $unwind не то не разобрался, не то он не работает как мне нужно, в результате его работы получаю только строки с непустым items
Обсуждают сегодня