У меня есть сценарий, где I думаю Возможно, мне понадобится использовать $ cond для установки атрибута в $ project (aggregation) в зависимости от того, существует ли существующий атрибут в массиве строки.MongoDB Фильтр для совпадающих и несогласованных условий
Возьмите следующие данные в упрощенном примере ...
var teamMemberFilter = ['Dave', 'Kate'];
[
{
ticketId: '1',
ticketDesc: 'Dummy ticket 1',
assignments: [
{
asignee: 'Team',
email: '[email protected]'
},
{
asignee: 'Dave',
email: '[email protected]'
},
{
asignee: 'Kate',
email: '[email protected]'
}
]
},
{
ticketId: '2',
ticketDesc: 'Dummy ticket 2',
assignments: [
{
asignee: 'Team',
email: '[email protected]'
},
{
asignee: 'Rob',
email: '[email protected]'
}
]
},
{
ticketId: '3',
ticketDesc: 'Dummy ticket 3',
assignments: [
{
asignee: 'Team',
email: '[email protected]'
},
{
asignee: 'Dave',
email: '[email protected]'
},
{
asignee: 'Mark',
email: '[email protected]'
}
]
}
]
Я хотел бы запрос, который возвращает все билеты с назначением команды и не имеет назначения для члена команды.
В приведенном выше примере должен быть возвращен только билет 2, так как он имеет задание команды, а единственное другое задание в одном и том же билете принадлежит Rob, который не является частью этой команды (как указано в teamMemberFilter).
Вам действительно нужно ** проецировать это? Или вы просто пытаетесь получить документы, соответствующие этим условиям? –
Просто документы, соответствующие условиям, я, вероятно, слишком усложняю! – PixelSheep