Eager Fetch使用NodeJS / Mongoose有很多关系

时间:2013-11-07 21:59:06

标签: node.js mongoose mongoose-populate

我有以下模特:

LeaderSchema = new app.mongoose.Schema({
    email: String,
    projects: [{ type: app.mongoose.Schema.ObjectId, ref: 'Project'}]
});

ProjectSchema = new app.mongoose.Schema({
    name: { type: String, required: true},
    leader: { type: app.mongoose.Schema.ObjectId, ref: 'Leader'}
});

Leader = app.mongoose.model('Leader', LeaderSchema);
Project = app.mongoose.model('Project', ProjectSchema);

我想在我的控制器中做的是检索所有项目及其各自的领导

projects_controller.js:

module.exports = function(app) {
    app.ProjectsController = {
        index: function(req, res) {
            app.Project.find(function(err, projects) {
                res.send(projects)
            })
        }
    }
}

但是,结果只给出了领导者的身份

的项目清单。

有没有办法让猫鼬急切地取得领导

1 个答案:

答案 0 :(得分:0)

虽然我想要一个定义模型上的急切负载行为的解决方案,但我找到的解决方案是使用populate

app.Project.find().populate('user').exec(function(err, projects) {
    res.send(projects)
})

可以找到populate的文档here at mongoosejs.com

相关问题