Node.js MongoDB-在父文档中填充GridFS文件元数据
我使用NodeJS与Express、MongoDB、Mongoose和GridFS一起上传和检索文件 我想通过ID引用其他文档中的文件,并在查询其他文档时填充文件元数据 例如:如果我有一个“用户”集合,其中包含这样的文档Node.js MongoDB-在父文档中填充GridFS文件元数据,node.js,mongodb,mongoose,gridfs,Node.js,Mongodb,Mongoose,Gridfs,我使用NodeJS与Express、MongoDB、Mongoose和GridFS一起上传和检索文件 我想通过ID引用其他文档中的文件,并在查询其他文档时填充文件元数据 例如:如果我有一个“用户”集合,其中包含这样的文档 { _id: ObjectId("554dfeb59e78d9081af2404f"), name: "John Doe", image: ObjectId("55b61ae329c44b483665bafc") } User.findById(req
{
_id: ObjectId("554dfeb59e78d9081af2404f"),
name: "John Doe",
image: ObjectId("55b61ae329c44b483665bafc")
}
User.findById(req.params.id)
.populate('image')
.exec(function(err, user) {...})
。。。我想做这样的事
{
_id: ObjectId("554dfeb59e78d9081af2404f"),
name: "John Doe",
image: ObjectId("55b61ae329c44b483665bafc")
}
User.findById(req.params.id)
.populate('image')
.exec(function(err, user) {...})
。。。这样我就可以访问文件元数据-例如文件名
user.image.filename
有什么想法吗?您可以为GridFS元数据集合定义一个架构,并在用户架构中引用它:
//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) {...})