如何从 GridFS 中的块和文件中删除文件?

Posted

技术标签:

【中文标题】如何从 GridFS 中的块和文件中删除文件?【英文标题】:How to remove a file from both chunks and files in GridFS? 【发布时间】:2017-04-13 10:57:54 【问题描述】:

猫鼬

var Grid = require('gridfs-stream');
var mongoose = require('mongoose');
var GridFS = Grid(mongoose.connection.db, mongoose.mongo);
GridFS.collection('backupdata').remove(_id: mongoose.Types.ObjectId(req.file_id), function (err) 
    console.log("deleted");
);

在这里,我创建了一个用于保存文件的集合(“dbmanager”)。当我尝试从 dbmanager 集合中删除文件时,该文档将从“dbmanager.files”中删除。但文件仍显示在“dbmanager.chunks”中。我需要从“dbmanager.files”和“dbmanager.chunks”中删除这些文件。

【问题讨论】:

【参考方案1】:

我最近刚刚使用 gridfs-stream 完成此操作

然后 gfs 驱动程序会为您完成:

gfs.remove(options, function (err) 
  if (err) return handleError(err);
  console.log('success');
);

gfs.remove( _id: fileId );

【讨论】:

在他们的 github 代码中:github.com/aheckmann/gridfs-stream/blob/… 它不再有效,我收到 DeprecationWarning: collection.remove is deprecated。请改用 deleteOne、deleteMany 或 bulkWrite。

以上是关于如何从 GridFS 中的块和文件中删除文件?的主要内容,如果未能解决你的问题,请参考以下文章

GridFS大文件的添加获取查看删除

mongodb删除命令:把uploadDate大于当前时间1小时GridFS文件删除掉

如何使用 rtorrent 中的移动/删除文件自动删除种子?

Ruby操作MongoDB数据库(进阶十二)--GridFS

GridFS文件操作

Ruby 中的块和产量