SailsJS一对多协会

时间:2014-09-10 15:54:46

标签: node.js associations sails.js waterline

您好我正在使用一对多配置中的几个模型构建一个Sails应用程序。我已经能够通过这种关系创建模型的新实例,但它似乎只是单向工作。

供参考(一)项目可以有(很多)用户。

/** Projects.js **/
name: {
    type: string
},

managers: {
    collection: 'Users',
    via: 'projects'
}

/** User.js **/
username: { 
    type: 'string'
},

projects { {
    model: 'Projects'
}

使用以下create方法,结果是User具有对Project的引用,但Project没有对该用户的引用。经理参考是一组用户ID。

Project.create({ name: req.param('name'), managers: req.param('managers') }).exec(function newProject(err, results) {
    if (err) return res.json({ error: err });
    return res.json({ results: results });
});

与各自的经理一起检索项目:

Project.findOne({ id: req.param('id') }).populate('managers').exec(function project(err, results) {
    if (err) return res.json({ error: err });
    return res.json({ results: results });
});

1 个答案:

答案 0 :(得分:2)

不应该

managers: {
    collection: 'Users',
    via: 'projects'
}

是这样的:

managers: {
    collection: 'User',
    via: 'projects'
}

?...

您将集合引用到模型文件名。 Refer to this documentation