Mysql SequelizeJS-包括具有多个+;Jointable名称。笛卡尔积

Mysql SequelizeJS-包括具有多个+;Jointable名称。笛卡尔积,mysql,sequelize.js,Mysql,Sequelize.js,以下是我的模型: 用户 组 评论 因此,基本上,我的用户和我的组在一个n:m表中(user\u有\u组),我在其中链接userID和groupID。一个用户可以有多个组,一个组可以有多个用户。 第二部分是将我的用户链接到他们的评论。一个用户可以有许多注释,并且注释属于一个用户 现在,如果我想显示每个用户的组,我将执行以下操作: Users.findAll({ include : [ Groups ] }).success( function(result) { res.json

以下是我的模型:
用户

评论

因此,基本上,我的用户和我的在一个n:m表中(user\u有\u组),我在其中链接userID和groupID。一个用户可以有多个组,一个组可以有多个用户。
第二部分是将我的用户链接到他们的评论。一个用户可以有许多注释,并且注释属于一个用户

现在,如果我想显示每个用户的组,我将执行以下操作:

Users.findAll({ include : [ Groups ] }).success( function(result) {     
    res.json(result);
});
我将按预期向我发送这样的结果:

{
    "id": 1,
    "name": "Ken",
    "groups": [{
        "id": 1,
        "label": "Administrators"
    }, {
        "id": 2,
        "label": "Contributors"
    }]
}, {
    "id": 2,
    "name": "Barbie",
    "groups": [{
        "id": 2,
        "label": "Contributors"
    }, {
        "id": 3,
        "label": "Readers"
    }]
}
如果我只包括我的评论,情况也是如此:

Users.findAll({ include : [ Comments ] }).success( function(result) {       
    res.json(result);
});
我不在这里显示,但相信我,结果很好。
现在,如果我想同时包含组和注释,sequelize不知道如何处理笛卡尔积。它将显示:

Users.findAll({ include : [ Groups, Comments ] }).success( function(result) {       
    res.json(result);
});


{
    "id": 1,
    "name": "Ken",
    "groups": [{
        "id": 1,
        "label": "Administrators"
    }, {
        "id": 2,
        "label": "Contributors"
    }, {
        "id": 1,
        "label": "Administrators"
    }],
    "comments":[{
        "id": 1,
        "text": "First! lol"
    }]
}, {
    "id": 2,
    "name": "Barbie",
    "groups": [{
        "id": 2,
        "label": "Contributors"
    }, {
        "id": 3,
        "label": "Readers"
    },{
        "id": 2,
        "label": "Contributors"
    }, {
        "id": 3,
        "label": "Readers"
    }],
    "comments":[{
        "id": 2,
        "text": "Hey Ken!"
    },{
        "id": 3,
        "text": "Why don't you answer!?"
    },{
        "id": 3,
        "text": "Why don't you answer!?"
    }]
}
所以。。。我只是想知道是否有其他人已经面临这种情况,或者你会怎么做?
我真的很想从一个用户那里得到相同结果的群组和评论。 如果我不能通过sequelize,我将执行

谢谢


变通 这似乎起到了作用(+检查choosen答案中的链接):


嵌套关联的快速加载正在进行中,但尚未完成。您可以在此处跟踪进度:

嵌套关联的快速加载正在进行中,但尚未完成。您可以在此处跟踪进度:

谢谢您的链接,我没有“嵌套关联”关键字。我编辑了我的问题,给出了一个临时解决方案,摘自链接。很高兴能提供帮助。我希望Sequelize能很快得到Rails风格的嵌套关联。感谢链接,我没有“嵌套关联”关键字。我编辑了我的问题,给出了一个临时解决方案,摘自链接。很高兴能提供帮助。我希望Sequelize能很快得到Rails风格的嵌套关联。
Users.findAll({ include : [ Groups, Comments ] }).success( function(result) {       
    res.json(result);
});


{
    "id": 1,
    "name": "Ken",
    "groups": [{
        "id": 1,
        "label": "Administrators"
    }, {
        "id": 2,
        "label": "Contributors"
    }, {
        "id": 1,
        "label": "Administrators"
    }],
    "comments":[{
        "id": 1,
        "text": "First! lol"
    }]
}, {
    "id": 2,
    "name": "Barbie",
    "groups": [{
        "id": 2,
        "label": "Contributors"
    }, {
        "id": 3,
        "label": "Readers"
    },{
        "id": 2,
        "label": "Contributors"
    }, {
        "id": 3,
        "label": "Readers"
    }],
    "comments":[{
        "id": 2,
        "text": "Hey Ken!"
    },{
        "id": 3,
        "text": "Why don't you answer!?"
    },{
        "id": 3,
        "text": "Why don't you answer!?"
    }]
}
Users.find(id).success(function(user){
    Groups.findAll({ where:{ userID:user.id }}).success(function(groups){
        Comments.findAll({ where:{ userID:user.id }}).success(function(comments){      
            res.json({
                id: user.id,
                name: user.name,
                groups: groups,
                comments: comments,
            })
        })
    })
})