【问题标题】:Delete .files and .chunk with GridFSBucket使用 GridFSBucket 删除 .files 和 .chunk
【发布时间】:2020-03-28 01:07:40
【问题描述】:

我正在尝试删除 .files 和 .chunk 数据,但我发现的所有帖子要么已过时,要么不适用于我的问题。

这是我的后端路由:

const mongoose = require("mongoose");
const config = require("config");
const db = config.get("mongoURI");
let gfs;
const conn = mongoose.createConnection(db);
conn.once("open", () => {
  gfs = new mongoose.mongo.GridFSBucket(conn.db, {
    bucketName: "photos"
  });
});

router.delete('/:imageID', async (req, res) => {
    gfs.delete({_id: req.params.imageID, root:"photos"}, function(error){
      test.equal(error, null);
}

有什么想法吗?

【问题讨论】:

    标签: node.js mongodb gridfs


    【解决方案1】:

    解决了!要成功删除 GridFS .files 和 .chunks,只需找到 obj_id 并执行 gfs.delete( obj_id) 代码:

    router.delete("/:imageID", auth, async (req, res) => {
      try {
        const post = await Post.findOne({ image: req.params.imageID });
        console.log(post);
        if (post.user != req.user.id) {
          res.status(401).send("Invalid credentials");
        }
    
    // Here:
        const obj_id = new mongoose.Types.ObjectId(req.params.imageID);
        gfs.delete( obj_id );
    
        await post.remove();
        res.json("successfully deleted image!");
      } catch (err) {
        console.error(err.message);
        res.status(500).send("Server Error");
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 2012-05-05
      • 2020-08-17
      • 2021-12-29
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 2019-11-09
      相关资源
      最近更新 更多