如何在sequelize中用数组字段正确添加一对多?

问题描述 投票:0回答:0

所以我有一个用户可以使用很多很多模块。用户表有一个模块字段,它是一个 module_id 数组。我想我应该做一个一对多的协会。这是对的吗? 所以我做了这样的协会:

User.belongsTo(Module, {
    as: "user_module",
    foreignKey: "module_id",
    sourceKey: "module",
    constraints: false, 
});

Module.hasMany(User, {
    sourceKey: "module_id",
    foreignKey: "module",
    constraints: false, 

});

用户表有这两个属性:

  user_id: {
                type: DataTypes.UUID,
                defaultValue: DataTypes.UUIDV4,
                primaryKey: true,
            },
    module: {
                type: DataTypes.ARRAY(DataTypes.UUID),
                allowNull: true, 
            },

当我尝试添加一个新用户时,它会创建一个用户,我可以将 module_id 添加为数组,但是当我尝试查询 user_module 时,它为空。 我这样查询用户:

 await db.user.findAll({
            raw: true, include: [ 
                {
                    model: Module,
                    as: 'user_module'
                }
            ]
        })

我哪里做错了?我该如何解决?

postgresql sequelize.js associations associative-array
© www.soinside.com 2019 - 2024. All rights reserved.