Sequelize多对多模型建好后怎么查询?
user表:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('user', {
id: {
type: DataTypes.INTEGER(12),
allowNull: false,
primaryKey: true,
autoIncrement: true,
unique : true
},
username: {
type: DataTypes.STRING,
allowNull: true
}
}, {
timestamps: true,
underscored: true,
tableName: 'user',
freezeTableName: true,
paranoid: true
});
};
bbs表:
module.exports = function(sequelize, DataTypes) {
return sequelize.define('bbs', {
id: {
type: DataTypes.INTEGER(12),
allowNull: false,
primaryKey: true,
autoIncrement: true,
unique : true
},
name: {
type: DataTypes.STRING,
allowNull: true
}
}, {
timestamps: true,
underscored: true,
tableName: 'bbs',
timestamps: false,
freezeTableName: true,
paranoid: true
});
};
建立关系:
db.user.belongsToMany(db.bbs, {through: 'userbbs', as:'userbbs'});
db.bbs.belongsToMany(db.user, {through: 'userbbs', as:'userbbs'});
生成表bbs,user,userbbs
userbbs结构:
userid,bbsid,update_at,create_at
执行以下语句成功,三表都插入相应数据:
Promise.all([
db.user.create({username:'itbilu'}),
db.bbs.create({name:'越秀'})
])
.then(function(results){
var user = results[0];
var bbs= results[1];
user.setUserBbs(bbs);
res.json(results);
})
但是到了查询,我想查询所有用户的信息和所在社区信息时就不知道怎么取了,看了网上多种方案都不行:
第一
db.user.findAll().then(function(user){
user.getBbs();
res.json(user);
})
说user.getBbs is not a function。
然后试了user.getUserBbs();
也不行
第二种,看的官方文档:
db.user.findAll({include:[{model:db.bbs]}).then(function(user){
res.json(user);
})
报: bbs is not associated to user!
求到底应该怎么查啊?哭死
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
解决了,自己的问题
我也遇到这种问题,直接提示:
user is not associated to address!
试下user.getUserbbs