【发布时间】:2018-07-19 09:32:21
【问题描述】:
我正在制作一个电影网站来培养我的 MEAN-stack 技能。目前我正试图从我的数据库中获取一个电影文档。该电影文档有一个属性 reviews,它是一个 ObjectId 数组,引用了 Review 模型。我填充了这些对象 ID,每个 Review 文档都具有以下结构:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var schema = new Schema({
user: {type: Schema.Types.ObjectId, ref:'User'},
movie: {type: Schema.Types.ObjectId, ref:'Movie'},
date: {type: Date, default: Date.now},
content: String
}, { usePushEach: true });
module.exports = mongoose.model('Review', schema);
我已经填充了从服务器获取的电影对象的评论属性,但我想知道如何还填充我获得的每个评论对象的用户属性。因此,我不会看到 objectId,而是看到实际的用户对象。
我在服务器端的路由:我填充了评论属性,但我不知道如何在这些评论对象中填充用户属性
router.get('/getmovie/:id', function(req, res, next) {
var id = req.params.id;
Movie.findById(id, function(err, movie){
if (err) {
res.status(500).json({
message: "An error occurred",
obj: err
})
}
Review.populate(movie, {path: 'reviews'}, function(err, movie){
if (err) {
res.status(500).json({
message: "An error occurred",
obj: err
})
}
res.status(200).json({
Message: "success",
obj: movie
});
})
})
});
【问题讨论】:
标签: javascript node.js mongoose