Если a имеет следующую структуру:
{
_id: 1,
name: 'a',
info: []
},
{
_id: 2,
name: 'b',
info: [
{
infoID: 100,
infoData: 'my info'
}
]
},
{
_id: 3,
name: 'c',
info: [
{
infoID: 200,
infoData: 'some info 200'
},
{
infoID: 300,
infoData: 'some info 300'
}
]
}
Мне нужно запросить таким образом, чтобы получить документы, в которых infoID равен 100 , показывая infoData, или ничего если информация пуста или содержит вложенные документы с infoID, отличным от 100.
То есть, я бы хотел получить следующий вывод:
{
_id: 1,
name: 'a',
infoData100: null
},
{
_id: 2,
name: 'b',
infoData100: 'my info'
},
{
_id: 3,
name: 'c',
infoData100: null
}
Если I $unwind
от info
и $match
на infoID: 100
, я теряю записи 1 и 3.
Спасибо за ваши ответы.