Mongo GridFS Как удалить файлы старше заданной даты?

Я столкнулся с этой проблемой о том, как удалить файлы старше определенной даты, и не смог найти быстрый ответ в Интернете, поэтому здесь я публикую вопрос и отвечаю на него, надеюсь, в какой-то момент это сэкономит кому-то 15 минут. .

По сути, я хотел иметь поведение следующей команды (удалить файлы старше пяти дней) добрая вещь

find /path/to/files* -mtime +5 -exec rm {} \;

а в монго.


person Reza S    schedule 12.11.2013    source источник


Ответы (2)


Удаление данных из fs.files не является хорошим решением. Вы всегда должны извлекать file_id из файла fs.files и использовать объект сетки fs для удаления одного и того же

person Chiranjib Datta    schedule 20.02.2017

person    schedule
comment
Это работает только в том случае, если в вашем документе есть «uploadDate», поэтому это решение не для всех. - person Joqus; 14.11.2013
comment
Я считаю, что GridFS предоставляет это для вас docs.mongodb.org/manual/reference/gridfs - person Alan Spencer; 20.11.2013
comment
GridFS хранит содержимое файла в коллекции fs.chunks. Таким образом, вы оставите фактические данные только при удалении записи fs.files. - person Oskar; 26.01.2016
comment
Как говорит @Oskar, вам нужно будет удалить связанные файлы из коллекции fs.chunks. Поскольку вы удаляете только метаданные/ссылки. например как описано здесь - person Ioannis Drositis; 22.07.2019