Postgresql 快速加载:如何使用两个外键进行包含
问题: 我有两个表“Transactions”和“Users”,它们有两个onetomy关系,两个外键是“senderId”和“recipientId”。在获取事务历史记录时,我试图获取“不是我”的用户(请求事务历史记录的用户)的配置文件图片 例如:如果id为1的用户是发送者,id为2的用户是接收者,那么当id为1的用户请求事务历史记录时,我需要将id为2的用户的配置文件图片包含到该特定事务中 用户模型关联:Postgresql 快速加载:如何使用两个外键进行包含,postgresql,sequelize.js,Postgresql,Sequelize.js,问题: 我有两个表“Transactions”和“Users”,它们有两个onetomy关系,两个外键是“senderId”和“recipientId”。在获取事务历史记录时,我试图获取“不是我”的用户(请求事务历史记录的用户)的配置文件图片 例如:如果id为1的用户是发送者,id为2的用户是接收者,那么当id为1的用户请求事务历史记录时,我需要将id为2的用户的配置文件图片包含到该特定事务中 用户模型关联: User.hasMany(models.Transactions{ 作为‘发送者’,
User.hasMany(models.Transactions{
作为‘发送者’,
外键:“senderId”,
});
User.hasMany(models.Transactions{
作为‘收件人’,
foreignKey:“recipientId”,
});
交易模型关联:
Transactions.belongsTo(models.User、{
作为‘发送者’,
外键:“senderId”,
});
事务处理.belongsTo(models.User{
作为‘收件人’,
foreignKey:“recipientId”,
});
当前实施情况
wait models.Transactions.findAndCountAll({
其中:{
[Op.or]:[{senderId:id},{recipientId:id}],
},
抵消,
极限,
包括:[
{
模型:模型。用户,
作为‘发送者’,
属性:['profilePic'],
},
{
模型:模型。用户,
作为‘收件人’,
属性:['profilePic'],
},
],
});
当前结果
{
“id”:2,
“senderId”:1,
“接收方ID”:2,
“createdAt”:“2021-01-29T08:45:41.319Z”,
“更新日期”:“2021-01-29T08:45:41.319Z”,
“发件人”:{
“profilePic”:“配置文件图片url”
},
“收件人”:{
“profilePic”:空
}
}
期望的结果
{
“id”:2,
“senderId”:1,
“接收方ID”:2,
“createdAt”:“2021-01-29T08:45:41.319Z”,
“更新日期”:“2021-01-29T08:45:41.319Z”,
“profilePic”:“未请求的用户配置文件图片url”
}
问题:
如何避免在急着加载时同时包含发件人和收件人的配置文件图片,而只获取其他用户的配置文件图片
谢谢