Я хочу отфильтровать незаполненные идентификаторы и вернуть документ с отфильтрованным массивом.Представьте, что у меня есть следующий общий MyDoc
{
id: 1,
title: 'test',
refs: ['refId1', 'refId2', 'refId3']
}
и документ для ссылок:
{
id: 'refId1',
filter: true
},
{
id: 'refId2',
filter: false
},
{
id: 'refId3',
filter: true
},
Я хочу использовать API-интерфейс Mongoose, чтобы получить приведенный ниже результат без 'refId2' в массиве refs, потому чтоего 'заполненная версия имеет свойство filter: false
{
id: 1,
title: 'test',
refs: ['refId1', 'refId3']
}
Пока что я вижу следующее решение: заполнить ссылки в MyDoc с помощью' match 'и затем каким-то образом удалить результат.
MyDoc.depopulate - отрежьте всю мою фильтрацию и просто верните первоначальный результат.
Также я могу сделать что-то вроде MyDoc.refs = MyDoc.refs.map(ref => ref.id)
, но это не очень хорошо выглядит.Интересует, есть ли более элегантный способ сделать это.
Заранее спасибо