Я хочу реализовать мягкое удаление в коллекции dong Монго (полное удаление выполняется один раз в день в рамках определенного процесса). Мое приложение может перечислить все активные элементы коллекции + N самых последних удаленных элементов.
Моя идея заключалась в добавлении флага to_delete
в мои элементы: при удалении элемента
- установить
deletion_date
на текущую дату - установить
to_delete: true
для удаленных элементов, кроме 5 самых последних (имеющих наибольшее значение deleting_date
)
Таким образом, мойлистинг и жесткое удаление легко реализовать:
- листинг - это простой запрос, возвращающий все элементы, имеющие
to_delete=false
- hard delete - простой запрос, удаляющий все элементы, имеющие
to_delete=true
Мой вопрос заключается в том, что я могу написать этот запрос:
- set
to_delete: true
для удаленных элементов, кроме 5 самых последних (имеющих наибольшее значение deleting_date
)