使用节点服务器从Mongo数据库中删除文件-未从collections.chunks中删除

时间:2018-08-09 09:18:48

标签: node.js mongodb mongoose gridfs-stream gfs

我正在尝试使用节点服务器中的GridFS删除/删除上传到mongo db的文件(在mongoose的帮助下)。一切看起来不错,并且文件名从collection.files中删除。但是我仍然可以看到blob数据保存在collections.chunks中。请在下面找到删除代码。

router.js

var mongoose = require('mongoose')
var GridFsStorage = require('multer-gridfs-storage');
var Grid = require('gridfs-stream');
Grid.mongo = mongoose.mongo;
var gfs = Grid(mongoConnection.db, mongoose.mongo);
gfs.collection('uploads');
...........
...........

router.post("/deleteBlobDocument", validate, function (req, res) {
gfs.findOne({  filename: req.body.name, root: 'uploads' }, function (err, file) {
        if (err || !file) {
          res.status(500).send({ "error": 'File Not Found.' });
        } else {
          gfs.files.remove({_id: file._id, root: 'uploads'}, function (err) {
            if (err) res.status(500).send({ "error": 'Unexpected error occured.' });
            res.send({ "message": "success" });
          });
        }
    });
})

这有什么问题?如何从mongodb中删除该文件的所有相关事件数据。

0 个答案:

没有答案