Sequelize使您能够定义表之间的多对多关联,这为Model实例增加了一些额外的功能。
我有一个Users表,并且在表上定义了一个自关联,如下所示:
User.belongsToMany(models.User, { through: 'Friends', as: 'friends', foreignKey: 'userId' });
这为User模型的实例提供了两个额外的方法,例如user.getFriends()
。到目前为止一切顺利。
我想做的是让所有不是我们实例朋友的用户。类似于user.getNonFriends()
。使用Sequelize可以吗?
答案 0 :(得分:1)
我能想到的一个快速解决方案是,您可以从数据库中获取用户A的朋友列表。使用该结果,您可以获得不在用户的A列表中的朋友列表。这是代码示例
const friends = user.getFriends();
const friendIds friends.map(friend => friend.id)
Friend.findAll({ where: {
id: { $notIn: [...friendIds] }
}
})