Javascript Mongoose gridfs流如何填充fs.file集合

Javascript Mongoose gridfs流如何填充fs.file集合,javascript,node.js,mongoose,gridfs-stream,Javascript,Node.js,Mongoose,Gridfs Stream,我在nodejs中使用gridfs流模块来存储图像 var db = require('config/db'); var Schema = require('mongoose').Schema; var schema = new Schema({ name: String, photo: Schema.Types.ObjectId // store file ObjectId }); var model = db.model('User', schema); model.f

我在nodejs中使用gridfs流模块来存储图像

var db = require('config/db');
var Schema = require('mongoose').Schema;

var schema = new Schema({
    name: String,
    photo: Schema.Types.ObjectId // store file ObjectId
});

var model = db.model('User', schema);

model.findById('123...', function(err, user) {
     console.log(user.photo) // only returning file ObjectId
     console.log(user.photo.filename) // error
});
如何填充用户照片以便访问文件信息


我知道我的数据库中有fs.files和fs.chunk。但是我是否应该为它们创建模式,以便引用我的模型?

user.photo的类型是schema.Types.ObjectId。因此,user.photo.filename将不存在

您需要将图像文件上载到gridfs,并在fs.files集合中获取给定给图像的文件ID。然后可以将user.photo设置为fs.files中文件的fileId