Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB-在父文档中填充GridFS文件元数据_Node.js_Mongodb_Mongoose_Gridfs - Fatal编程技术网

Node.js MongoDB-在父文档中填充GridFS文件元数据

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

我使用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) {...})
。。。我想做这样的事

{
   _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) {...})