我定义了这些数据(多对多关系):
exports.User = sequelize.define('user', {
name: {
type: Sequelize.STRING,
unique: true,
},
email: {
type: Sequelize.STRING,
unique: true
},
password: {
type: Sequelize.STRING
}
});
exports.Project = sequelize.define('project', {
name: {
type: Sequelize.STRING,
unique: true
},
description: {
type: Sequelize.STRING
}
});
exports.User.belongsToMany(exports.Project, {as: 'Projects', through: 'user_projects', foreignKey: 'userId'});
exports.Project.belongsToMany(exports.User, {as: 'Users', through: 'user_projects', foreignKey: 'projectId'});
如果我知道用户 ID,如何查询该用户中的所有项目。
我现在应该做什么 :
db.User.findById(userId).then(function (user) {
user.getProjects().then(function(projects){
//get
});
});
我可以通过 id 获取项目,而不是查询两次吗?
最佳答案
我想你可以这样做:
var query = {
where: {id: userId},
include: [
{model: db.Project, as: 'Projects'}
]
}
db.User.findOne(query).
then(function (user) {
var projects = user.Projects
...
});
关于node.js - 如何在sequelize js中按外键查找数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822787/