【发布时间】:2017-04-17 01:08:27
【问题描述】:
我在节点 js 中使用 mLab 用于数据库和猫鼬。我使用的是 swagger,这不会导致任何问题。我有以下模式。当用户请求时,如果 (review = true) 在查询中,我需要一起返回电影和评论。一部电影可能有多个评论。首先,我必须找到数据库中的所有电影。当我找到电影时,我必须逐一浏览,在另一个数据库中查找任何评论,然后以某种方式将它们附加到电影中。我需要在一个包中返回所有电影,因为它将用于 getAll 功能。不管我做什么,它只会返回没有评论的电影。
var mongoose = require('mongoose');
var reviewSchema = new mongoose.Schema({
movie: {type: String, required: true},
reviewer: {type: String, required: true},
rating: {type: Number, required:true, min: 1, max: 5},
text: {type: String, required: true},
})
var movieSchema = new mongoose.Schema({
Title: {type: String, required: true, unique: true},
YearReleased: {type: Number, required: true},
Actors: [{
Name: {type: String, required: true}
}]
})
。
function getAll(req,res,next){
db.Movies.find({},function(err,movies){
if(err) throw {err:err};
if(req.swagger.params.review.value === false)
res.send({Movielist: movie});
else {
movies.forEach(function(movie, index){
db.Reviews.find({movie:movies[index].Title}, function (err, review) {
if(err) throw {err:err}
movies[index].Review = review // I am trying to populate each movie with reviews
});
});
res.send({Movielist: movies});
}
});
}
【问题讨论】:
标签: javascript node.js asynchronous mongoose swagger-2.0