首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用.files和.chunk删除GridFSBucket

用.files和.chunk删除GridFSBucket
EN

Stack Overflow用户
提问于 2020-03-28 01:07:40
回答 1查看 2.4K关注 0票数 2

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

这是我的后端路线:

代码语言:javascript
复制
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);
}

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-04 00:44:36

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

代码语言:javascript
复制
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");
  }
});
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60896129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档