Sequelize - 通过相关对象的精确数组查找?

时间:2014-08-13 08:30:55

标签: mysql associations sequelize.js

假设我有User模型。它与User模型的FriendsUserFriends表格具有多对多的asccociations。

User = sequelize.define 'User',

  name :
    type         : Sequelize.STRING
    allowNull    : false
    defaultValue : ""

User
.hasMany User,
  as      : "Friends"
  through : "UserFriends"

如何在好友中找到几个特定用户的User个实例?例如,如果用户1有朋友3,4,5而用户2有朋友3,4,我正在寻找通过确切朋友id的数组[3,4]找到user2的方式。

非常感谢!

1 个答案:

答案 0 :(得分:1)

User.find({
  where: ...,
  include: [{
    model: User,
    as: 'Friends',
    where: { id: [3, 4] }
  }]
})

如果您使用的是相当新版本(非常确定2.0-dev12具有此功能),则向include添加where条件将创建内部联接,这意味着它只会返回有朋友的用户id为3或4