查询"belongsToMany"中的所有记录(如果特定记录是其中之一)



我有User模型、Message模型和Group模型。Message belongsTo GroupGroup belongsToMany User(group_members, { as: 'members' })我想查询特定用户是其组成员的所有消息。我用Message上的include实现了这一点,就像这样:

include: [ {
model: Group,
include: {
association: 'members',
where: {
id: userId
}
},
required: true
} ]

然而,这将返回Message.Group.members作为的数组,该数组仅为我检查的用户。这当然是意料之中的事,但如果我想要所有成员(其中userId是其中之一(,我该怎么办?

编辑-这似乎就是我想要的。

您的where条件应该在include之外。通过创建所需的内部联接,您可以过滤如下结果:

models.Message.findAll({
attributes: [ 'idcustomer', 'firstname', 'lastname' ],
include: [ {
model: Group,
include: {
association: 'members'  
}
} ]
where: {
'group.members.id': userId
}
});

这应该行得通。

最新更新