使用 Spring Mongo 有没有一种方法可以只使用查询或类似的东西一次从 Mongo 中删除多个文件(使用 GridFS 存储)?例如,如果我在集合 .files 中有一个字段 Language,我希望能够在单个查询中从 .files 和 .chunks 中删除所有条目。不确定这在 Mongo(春季以外)是否可行。
尝试使用 GridFsTemplate 但删除方法调用 GridFS.remove 方法(来自 Spring-Mongodb 的代码)
public void delete(Query query) {
getGridFs().remove(getMappedQuery(query));
}
而这个方法获取内存中的所有文件,然后一一删除:
public void remove( DBObject query ){
for ( GridFSDBFile f : find( query ) ){
f.remove();
}
}
void remove(){
_fs._filesCollection.remove( new BasicDBObject( "_id" , _id ) );
_fs._chunkCollection.remove( new BasicDBObject( "files_id" , _id ) );
}
更新:来自评论:
是的,您不能在 MongoDB 中执行此类查询。此外,没有直接的方法可以使用 mongofiles 命令行工具和 mongo java 驱动程序删除 GridFS 中的一堆文件。