【发布时间】:2014-10-23 03:33:03
【问题描述】:
通过以下参考,我了解了如何使用关系表映射多对多
http://sequelizejs.com/docs/latest/associations#many-to-many
User = sequelize.define('User', { user_name : Sequelize.STRING})
Project = sequelize.define('Project', { project_name : Sequelize.STRING })
UserProjects = sequelize.define('UserProjects', {
status: DataTypes.STRING
})
User.hasMany(Project, { through: UserProjects })
Project.hasMany(User, { through: UserProjects })
但是如何查询 User 的 Project
我试过了
User.find({where:{id:1},include,[UserProjects]})
User.find({where:{id:1},include,[Projects]})
User.find({where:{id:1},include,[UserProjects]})
User.find({where:{id:1},include,[Projects]})
但我没有得到结果
对创建的表进行如下排序
users(id,name)
projects(id,project_name)
userprojects(id,UserId,ProjectId)
我试过https://github.com/sequelize/sequelize/wiki/API-Reference-Associations#hasmanytarget-options
User.find({where:{id:1}}).success(function(user){
user.getProjects().success(function (projects) {
var p1 = projects[0] // this works fine but 2 queries required. I expect in single find. without getProjects
p1.userprojects.started // Is this project started yet?
})
})
如何获取一个用户的所有项目??
【问题讨论】:
标签: mysql node.js orm sequelize.js