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) {...})
- Sails.js + Mongodb使用ORM插入一个嵌套的jsonlogging
- 如何在sails-mongodb中使用{$ text:{$ search:search}}?
- 使用种子string在mongoose中创buildObjectId
- 通过Mongoose在MongoDB中存储另一个文档中embedded的文档的副本
- 我应该使用哪种mongo驱动程序?
- 将网站configuration存储为Mongoose模型
- 将不同types的值从Node.js插入到MongoDB集合中
- 如何自动创build一个REST API node.js / MongoDB
- 错误:找不到模块'./drivers'与mongoose只在服务器上