Мангуст - фильтрация депопулированных полей - PullRequest
0 голосов
/ 24 октября 2018

Я хочу отфильтровать незаполненные идентификаторы и вернуть документ с отфильтрованным массивом.Представьте, что у меня есть следующий общий 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), но это не очень хорошо выглядит.Интересует, есть ли более элегантный способ сделать это.

Заранее спасибо

...