[英]Sequelize – many to many associations
我定義了兩個模型:
db / models / User.js
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class User extends Sequelize.Model {}
const config = {
sequelize,
modelName: 'user',
underscored: true,
paranoid: true,
});
User.init({
first_name: {
type: DataTypes.STRING,
},
last_name: {
type: DataTypes.STRING,
},
}, config);
return User;
};
db / models / Group.js
const Sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Group extends Sequelize.Model {}
const config = {
sequelize,
modelName: 'group',
underscored: true,
paranoid: true,
});
Group.init({
name: {
type: DataTypes.STRING,
allowNull: false,
},
}, config);
return Group;
};
我想在那時之間建立多對多關聯(這樣一個組可以有許多用戶,並且一個用戶可以屬於多個組。這是我的db/index.js
:
db / index.js
const Sequelize = require('sequelize');
const Logger = require('../config/logger');
const { DB } = require('../config/vars');
const UserModel = require('./models/User');
const GroupModel = require('./models/Group');
const sequelize = new Sequelize(
DB.name,
DB.username,
DB.password,
{
host: DB.host,
dialect: 'postgres',
},
);
const Models = {
User: UserModel(sequelize, Sequelize),
Group: GroupModel(sequelize, Sequelize),
};
const setup = async () => {
// Associations
Models.User.belongsToMany(Models.Group, {
through: 'UserGroups',
as: { singular: 'group', plural: 'groups' },
});
Models.Group.belongsToMany(Models.User, {
through: 'UserGroups',
as: { singuler: 'user', plural: 'users' },
});
await sequelize.sync({ force: true });
};
module.exports = {
...Models,
setup,
Seeders,
Sequelize,
sequelize,
};
當我執行User.findAll()
,對象中沒有返回groups
屬性。 我應該如何在這里正確建立多對多關系?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.