gridfs- stream 不会从 mongodb 中删除文件
gridfs- stream doesn't delete files from mongdb
我正在尝试更新个人资料图片,但我读到 GridFS 没有更新方法,所以我尝试先删除记录然后稍后插入新记录,但是当我尝试删除记录时,它说 "success" 但根本没有从数据库中删除它(记录仍然可见),当我添加 gfs.exist 只是作为删除前的检查时,我得到以下日志,我不明白为什么它返回 false ,当记录确实存在并且我也尝试传递文件名时(同样的错误)。
console.log("current pid:",req.body.current_pid);
gfs.exist({_id:req.body.current_pid}, function (err, found) {
console.log("found: ", found);
if(found){
gfs.remove({_id:req.body.current_pid}, function (err) {
if (err) return handleError(err);
console.log('success in deletion',err);
});
}
else{
console.log('does not exist',err);
}
});
}
日志:
current pid: 55b877629f6f5af41c0e25ed
found: false
does not exist null
你需要改变它。 GridFS 期望默认集合 "root" 为 "fs",gridfs-stream 中的方法也是如此。那是你的问题。只需从代码中的 "gfs" object gfs.collection("photos")
设置该方法即可找到。否则,各个方法的额外参数采用配置对象,因此:
{ "root": "photos" }
那里。
学分 - @blake seven
我正在尝试更新个人资料图片,但我读到 GridFS 没有更新方法,所以我尝试先删除记录然后稍后插入新记录,但是当我尝试删除记录时,它说 "success" 但根本没有从数据库中删除它(记录仍然可见),当我添加 gfs.exist 只是作为删除前的检查时,我得到以下日志,我不明白为什么它返回 false ,当记录确实存在并且我也尝试传递文件名时(同样的错误)。
console.log("current pid:",req.body.current_pid);
gfs.exist({_id:req.body.current_pid}, function (err, found) {
console.log("found: ", found);
if(found){
gfs.remove({_id:req.body.current_pid}, function (err) {
if (err) return handleError(err);
console.log('success in deletion',err);
});
}
else{
console.log('does not exist',err);
}
});
}
日志:
current pid: 55b877629f6f5af41c0e25ed
found: false
does not exist null
你需要改变它。 GridFS 期望默认集合 "root" 为 "fs",gridfs-stream 中的方法也是如此。那是你的问题。只需从代码中的 "gfs" object gfs.collection("photos")
设置该方法即可找到。否则,各个方法的额外参数采用配置对象,因此:
{ "root": "photos" }
那里。
学分 - @blake seven