我属于模型用户和项目的许多关联。最简单的方法是什么,给定一个用户 ID,查询以便我们拥有用户拥有的所有项目以及每个项目的所有用户?我当前的方法非常复杂,涉及两个单独的查询,然后用 Javascript 进行解析。我认为我错过了一些可以简化整个过程的重要步骤。下面是我希望返回给最终用户的 REST API 响应。
{
"user_id": "wru09asf",
"projects": [
{
"id": "project_id",
"content": "Final Year Project",
"users": [
{
"id": "user_id",
"role": "Creator"
}
]
}
]
}
目前我正在做
// first function, get all projects
User.findById(user_id).then(function(user) {
user.getProjects({
});
});
// second function, get all users of each project returned
for each project returned, do
Project.findById(project_id).then(function(project) {
project.getUsers();
});
// third function
Combine the two responses using Javascript to get the final API response.
Sequelize 模型:
//User (all models are underscored named)
sequelize.define('users', {
id: {
type: DataTypes.STRING,
primaryKey: true
},
password: DataTypes.STRING,
salt: DataTypes.STRING,
email: {
type: DataTypes.STRING,
unique: true
}
});
// Project
sequelize.define('projects', {
id: {
type: DataTypes.STRING,
primaryKey: true
},
content: DataTypes.TEXT
});
// UserProject
sequelize.define('user_project', {
role: DataTypes.STRING
});
关系:
User.belongsToMany(Project, {through: UserProject});
Project.belongsToMany(User, {through: UserProject});
最佳答案
user.getProjects()
User.findById(1).then(function(user){
user.getProjects().then(function(projects){
console.log(projects);
},function(err){
console.log(err);
})
},function(err){
console.log(err);
});
关于javascript - Sequelize 属于在一个查询中同时获取两种关系的多类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32990988/