在NodeJS中使用gridfs通过元数据删除文件
Deleting file by metadata with gridfs in NodeJS
我正在尝试使用gridfs删除mongodb数据库中的文件。我想删除所有包含元数据的文件。关系= id。以下是我在NodeJS中的方法:
function deleteFiles(){
gfs.remove({'metadata.relation': req.body._id }, function(err){
if (err) return false;
return true;
})
}
错误是:
C: ' ' Gaute '用户文档' GitHub ' WikiHelpSystem ' node_modules '猫鼬' node_module年代' mongodb ' lib ' mongodb ' gridfs ' gridstore.js: 1138
如果名字。构造函数==数组){^
TypeError: Cannot read property 'constructor' of undefinedC:'Users'Gaute'Documents'GitHub'WikiHelpSystem' node_modules '猫鼬' node_modules ' mongodb ' lib ' mongodb ' gridfs ' gridstore.js: 1138: 11)
假设您正在使用gridfs-stream模块,那么当您使用对象调用gfs.remove
时,它将期望该对象将包含_id
。
您需要首先获得id,使用MongoDb驱动程序。
// This should be your files metadata collection, fs.files is the default collection for it.
var collection = db.collection('fs.files');
collection.findOne({'metadata.relation': req.body._id }, { _id : 1 }, function (err, obj) {
if (err) return cb(err); // don't forget to handle error/
gfs.remove(obj, function(err){
if (err) return false;
return true;
})
});
gfs.files.remove({_id:_id} , function(err){
if (err){
console.log("error");
}else{
console.log("old file removed")
}
});
相关文章:
- 访问Twilio短信元数据
- Firebase-返回用户uid并将用户元数据值设置为不同的节点
- Chart.js2.X中的条形值-数据集元数据未定义
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 获取javascript中的元数据属性
- 从 Google 云端硬盘请求文件元数据时缺少“downloadUrl”参数
- 如何在上传前在浏览器中去除图像元数据(javascript)
- chart.js v2:如何添加元数据的工具提示
- 如何从广播流中获取mp3元数据(无icecast,无shoutcast)
- 了解JavaScript中的基元数据类型
- 如何通过AJAX发送YouTube视频元数据
- Extjs 4,如何使用单个Json文件为多个动态网格发送多个元数据
- 从S3获取视频文件元数据
- Tokbox中的令牌元数据
- 是否有javascript机制来修改图像的EXIF元数据信息
- 使用播放按钮和/或元数据API(Spotify)进行现场演示
- 动态创建页面 og 元数据 - 客户端
- 获取元数据时出现 Ember 数据奇怪的问题
- IE8:触发“加载元数据”事件
- 在NodeJS中使用gridfs通过元数据删除文件