我想使用 GridFS 将文件存储在 MongoDB 中,用于流式传输视频和保存图像等不同目的。这些是猫鼬文档“文章”的一部分。
我正在考虑为每种文件类型“视频”和“缩略图”使用来自 GridFS 的不同存储桶,但我不确定如何创建模式和模型来填充整个集合。
我有这个架构,我想在每个视频和缩略图中填充 fs.files。
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var ArticleSchema = new Schema({
title : { type : String, required : true },
description : { type : String, required : true },
votes : { type : Number, default : 0 },
createdAt : { type : Date, default : Date.now },
// ObjectID of the fs.file video
// ObjectID of the fs.file thumbnail
});
ArticleSchema.pre('save', function(next) {
store this files using here the createWriteStream
});
module.exports = mongoose.model('Article', ArticleSchema);
问题:
使用“pre”方法存储此集合的逻辑必须在模型中?
我在这里看到了大量示例和相关问题,但都将存储文件的逻辑放在控制器中,而不是在模型中执行。