Let's say I have a collection of objects:
{
_id : 1,
list1 : [
{ name: 'This is my name', value: 'This is my value' },
{ name: 'name number 2', value: 'value number 2' }
],
list2 : [
{ name: 'Another name', value: 'Another value' }
],
deeper : {
list3 : [
{ name: 'Another name but even deeper', value: 'Another value but deeper' }
]
}
}
Using aggregation pipeline how would I return a single list of name/value objects? Result should be:
{
_id : 1,
combinedList : [
{ name: 'This is my name', value: 'This is my value' },
{ name: 'name number 2', value: 'value number 2' },
{ name: 'Another name', value: 'Another value' },
{ name: 'Another name but even deeper', value: 'Another value but deeper' }
]
}
PART 2:
Now, how to flatten deeply nested objects from a whole collection into a single response? Example:
{
"_id" : 0,
list1 : [
{ name: 'This is my name', value: 'This is my value' },
{ name: 'name number 2', value: 'value number 2' }
],
list2 : [
{ name: 'Another name', value: 'Another value' }
]
},
{
"_id" : 1,
list1 : [
{ name: 'This is my name', value: 'This is my value' },
{ name: 'name number 2', value: 'value number 2' }
],
deeper : {
list2 : [
{ name: 'Another name but even deeper', value: 'Another value but deeper' }
]
}
}
The result should be the same document as above (combinedList).