我有以下两种模型:客户和商人。我在这两个之间建立了关联:
Customer.belongsToMany(models.Merchant, {
through: models.MerchantCustomer,
as: 'merchant',
foreignKey: 'customer',
otherKey: 'merchant'
});
Merchant.belongsToMany(models.Customer, {
through: models.MerchantCustomer,
as: 'customer',
foreignKey: 'merchant',
otherKey: 'customer'
});
一个客户可以在几个商人上,而一个商人可以拥有 客户。
我找不到如何检索特定商家的所有客户,包括关联表的特定属性:
const MerchantCustomer = sequelize.define(
'MerchantCustomer',
{
balance: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0
},
status: {
type: DataTypes.UUID,
defaultValue: null
},
},
{}
);
我希望得到这样的结果:
[{
customerObject,
balance,
status
}]
我尝试过的事情:
const customers = await Customer.findAll({
include: [
{
model: Merchant,
as: 'merchant',
through: {
attributes: ['balance', 'status'],
where: { merchant: req.app.locals.merchant.id }
}
}
]
});
我有一个客户数组,但不仅有指定的商家,我还有所有商家的所有客户,并且没有属性 balance
和{{ 1}}。
我应该如何编辑我的请求?