belongsToMany 与 Sequelize 关联的限制

我想知道,如何限制我的 belongsToMany 关系。我尝试添加限制,但出现此错误:


"message": "只有 HasMany 关联支持 include.separate",


我有 2 个表:


| peoples (id, code) 

| people-friends (fk_user_id, fk_friend_id) // fk_friend_id is an id from user

我的请求 :


    await db.People.findAll({

    where: {

    id: parent.dataValues.id,

    },

    include: [

    {

        model: db.People,

        as: "Friends",

        limit: 2, // <--- LIMIT

    },

    ],

})

人物模型:


People.associate = (models) => {

    // People relations

    models.People.belongsToMany(models.People, {

        as: "Friends",

        through: models.PeopleFriend,

        foreignKey: "fk_user_id",

        otherKey: "fk_friend_id",

    })

}


函数式编程
浏览 74回答 1
1回答

哈士奇WWW

如果您希望某个用户的朋友限制为 2 个朋友(哪些?您必须添加一个order选项),您可以查询 PeopleFriend 包括 People 模型,如下所示:await db.PeopleFriend.findAll({&nbsp; &nbsp; where: {&nbsp; &nbsp; &nbsp; fk_user_id: parent.dataValues.id&nbsp; &nbsp; },&nbsp; &nbsp; limit: 2, // <--- LIMIT&nbsp; &nbsp; order: [['Friend', 'name', 'asc']],&nbsp; &nbsp; include: [&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; model: db.People,&nbsp; &nbsp; &nbsp; &nbsp; as: "Friend",&nbsp; &nbsp; },&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; model: db.People,&nbsp; &nbsp; &nbsp; &nbsp; as: "User",&nbsp; &nbsp; },&nbsp; &nbsp; ],})不要忘记将来自 PeopleFriend 的关联添加到两个 People 链接。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript