MongoDB – 在父文档中填充GridFS文件元数据
我正在使用NodeJS Express,MongoDB,Mongoose和GridFS上传和检索文件。
我想通过ID引用其他文档中的文件,并在查询其他文档时填充文件元数据。
例如:如果我有一个像这样的文件的集合“用户”…
{ _id: ObjectId("554dfeb59e78d9081af2404f"), name: "John Doe", image: ObjectId("55b61ae329c44b483665bafc") }
我想这样做…
User.findById(req.params.id) .populate('image') .exec(function(err, user) {...})
…应该让我访问文件元数据 – 例如文件名…
user.image.filename
有任何想法吗?
您可以为GridFS元数据集合定义模式,并在User模式中引用它:
//define Model for metadata collection. var GFS = mongoose.model("GFS", new Schema({}, {strict: false}), "fs.files" ); var UserSchema = Schema({ image: {type: Schema.Types.Object, ref: 'GFS' } // refer the model }); var User = mongoose.model('User', UserSchema); User.findById(req.params.id) .populate('image') //populate .exec(function(err, user) {...})