[英]Sequelize belongs to many get both relations in one query
我屬於模型User和Project的許多關聯。 在給定用戶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.
序列化模型:
//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.findAll({
where: {
id: user_id
},
include: [Project]
}).then(function(user) {
});
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);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.