我有3个模型:A,B及其枢纽AsB。 我正在尝试获取所有A / B实体(查询其各自的存储库),其中ivot的boolToCheck为true。 我已经能够过滤每个其他模型的字段(例如:A,其中B.bField是任何东西),但是不能通过透视字段过滤。
我该怎么办? 谢谢!
模型A
module.exports = (sequelize, DataTypes) => {
const A = sequelize.define(
"a",
{
aField: {
allowNull: false,
type: DataTypes.STRING,
},
},
{}
);
A.associate = function (models) {
A.belongsToMany(models.B, {
through: "asBs",
onDelete: "RESTRICT",
onUpdate: "CASCADE",
});
};
return A;
};
B型
module.exports = (sequelize, DataTypes) => {
const B = sequelize.define(
"b",
{
bField: {
allowNull: false,
type: DataTypes.STRING,
},
},
{}
);
B.associate = function (models) {
B.belongsToMany(models.A, {
through: "asBs",
onDelete: "RESTRICT",
onUpdate: "CASCADE",
});
};
return B;
};
PIVOT AB
module.exports = (sequelize, DataTypes) => {
const AsBs = sequelize.define(
"asBs",
{
aId: {
allowNull: false,
type: DataTypes.NUMBER,
},
bId: {
allowNull: false,
type: DataTypes.NUMBER,
},
boolToCheck: {
allowNull: false,
type: DataTypes.NUMBER,
},
},
{}
);
AsBs.associate = function (models) {
AsBs.belongsTo(models.A, {
onDelete: "RESTRICT",
onUpdate: "CASCADE",
});
AsBs.belongsTo(models.B, {
onDelete: "RESTRICT",
onUpdate: "CASCADE",
});
};
return AsBs;
};