Mongodb Mongo GridFS如何删除早于给定日期的文件?

Mongodb Mongo GridFS如何删除早于给定日期的文件?,mongodb,gridfs,Mongodb,Gridfs,我遇到了一个关于如何删除超过某个日期的文件的问题,在网上找不到一个快速的答案,所以我在这里发布这个问题并回答它,希望它能在某个时候为某人节省15分钟 本质上,我希望有以下命令(删除超过五天的文件)之类的行为 find /path/to/files* -mtime +5 -exec rm {} \; 但是在mongo。中,从fs.files中删除数据不是一个好的解决方案。您应该始终从fs.files中检索文件id,并使用grid fs对象删除相同的从fs.files中删除数据不是一个好的解决方案

我遇到了一个关于如何删除超过某个日期的文件的问题,在网上找不到一个快速的答案,所以我在这里发布这个问题并回答它,希望它能在某个时候为某人节省15分钟

本质上,我希望有以下命令(删除超过五天的文件)之类的行为

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

但是在mongo。

中,从fs.files中删除数据不是一个好的解决方案。您应该始终从fs.files中检索文件id,并使用grid fs对象删除相同的

从fs.files中删除数据不是一个好的解决方案。您应该始终从fs.files中检索文件id,并使用grid fs对象删除相同的

这只适用于文档中有“uploadDate”的情况,因此这不是每个人都可以使用的解决方案。我相信GridFS为您提供了此功能GridFS将文件内容存储在“fs.chunks”集合中。因此,当只删除“fs.files”条目时,您将保留实际数据。正如@Oskar所说,您需要从
fs.chunks
集合中删除相关文件。因为您只删除元数据/引用。e、 g.如前所述,这只在文档中包含“uploadDate”时有效,因此它不是每个人都可以使用的解决方案。我相信GridFS为您提供了这一解决方案GridFS将文件内容存储在“fs.chunks”集合中。因此,当只删除“fs.files”条目时,您将保留实际数据。正如@Oskar所说,您需要从
fs.chunks
集合中删除相关文件。因为您只删除元数据/引用。e、 g.如上所述
db.fs.files.remove({"uploadDate": {$lt : ISODate("2013-11-10T20:32:13.743Z")}});