Как удалить все документы, кроме одного - PullRequest
1 голос
/ 24 апреля 2020

Я использую express со стеком mongodb & mongoose, и я буквально не знаю, как сделать запрос к базе данных

Как я могу удалить все документы внутри коллекции, кроме одного по критериям?

Позвольте мне показать, что я имею в виду

У меня есть коллекция с документами.

[
  {
    id: 1,
    subDocument: {
      id: 'a'
    }
  },
  {
    id: 2,
    subDocument: {
      id: 'b'
    }
  },
  {
    id: 3,
    subDocument: {
      id: 'c'
    }
  },
]

Каждый из этих документов имеет свой отдельный поддокумент. Я хочу удалить все документы (на первом уровне), которые не соответствуют критериям в поддокументе.

Если subDocument.id не равно 'b' удалить документ.

I ожидал бы такой результат

[
  {
    id: 2,
    subDocument: {
      id: 'b'
    }
  },
]

PS Я не могу найти хороших примеров в документации goose. Не могли бы вы предоставить мне пример или поделиться ресурсом, где я могу найти такую ​​информацию

Большое спасибо

1 Ответ

1 голос
/ 24 апреля 2020

В пн goose вы можете использовать Model.remove и проходной фильтр в качестве параметра:

Model.remove({ 'subdocument.id': { $ne: 'b' } })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...