2013-02-17 56 views
0

所以我有几个猫鼬模式的定义。如何在回调第一个查询时查询另一个集合。

var partSchema = mongoose.Schema({ 
    name: String, 
    system: String, 
    team: Array, 
    quantity: Number, 
}); 
var part = mongoose.model('part', partSchema); 

var peopleSchema = mongoose.Schema({ 
    name: String, 
    pass: String, 
    role: String, 
    parts: Array 
}); 

var people = mongoose.model('people', peopleSchema); 

而我想发送基于这些模式,以及更多,基于这些用户的查询。因此...

app.get('/', function(req, res){ 
    people.find(function(err, persons){ 
    if (err) return handleError(err); 
    console.log(persons); 
    parts.find(function(err, things){ 
     res.render('in', { user: req.session.user, people:persons, parts:things }); 
    }); 
    }); 
}); 

为了保持异步,我会窝这些电话,对不对?我不能嵌套这些调用,因为“部分”不再被定义。我想知道我是否可以做到这一点,我该怎么做?对不起,如果这是一个noob问题,但我已经看了这几天,似乎还没有找到一个解决方案。谢谢!

回答

0

'part'型号的变量名称为part,而不是parts。所以它应该是:

app.get('/', function(req, res){ 
    people.find(function(err, persons){ 
    if (err) return handleError(err); 
    console.log(persons); 
    part.find(function(err, things){ // <-- Changed on this line 
     res.render('in', {user: req.session.user, people:persons, parts:things}); 
    }); 
    }); 
}); 
+0

哇,我不能相信我没有接受。我现在感觉很糟糕。非常感谢! – 2013-02-17 05:52:29

相关问题