Sequelize-如何在包含时省略中间表的行?

时间:2018-08-22 18:29:00

标签: javascript node.js sequelize.js

例如,如果我有:

User.findOne({
    ...SOMETHING,
    include: {
        model: Post,
        include: {
            model: Comment
        }
    }
});

此返回:

{
    id: 1,
    ...user data,
    post: [{
       ...post data, // <--- I WANT TO OMIT THESE
       comment: [{
           ...comment data
       }]
    }, {
       ...post data, // <--- I WANT TO OMIT THESE
       comment: [{
           ...comment data
       }]
    }]
}

然后,我想省略所有发布数据。我只对评论数据感兴趣。

所以,我期望的是:

{
    id: 1,
    ...user data,
    post: [{
        comment: [{...}]
    }, {
        comment: [{...}]
    }]
}

{
    id: 1,
    ...user data,
    comment: [{...}] // combined all comments into one array
}

我尝试使用attributes选项:

User.findOne({
    ...SOMETHING,
    include: {
        model: Post,
        attributes: [], // <--- expected: nothing shows
        include: {
            model: Comment
        }
    }
});

但是上面的代码仅返回用户数据:

{
    id: 1,
    ...user data
}

仅此而已。

没有帖子或评论数据。 (我也尝试过attributes: ['comment'],但是如您所知,它会发生错误)

我很确定这是一个非常简单的问题,但是我找不到任何解决方案。如何省略中间表的行?任何建议将不胜感激!

0 个答案:

没有答案