如何在 Sequelize 中执行“WHERE”,但排除嵌套模型?

Ale*_*xey 5 node.js sequelize.js

有两种模型:用户模型和客户端模型。

\n\n
Client.hasMany(User);\nUser.belongsTo(Client);\n
Run Code Online (Sandbox Code Playgroud)\n\n

接下来,我正在做:

\n\n
User.findAll({\n    include: [{\n        model: Client,\n        where: {\n            id: \xe2\x80\x9c1\xe2\x80\x9d\n        }\n    }]\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

此代码工作正常,但在最终输出中包含具有所有属性的客户端模型。我仍然可以执行 \xe2\x80\x9cwhere\xe2\x80\x9d 语句,但完全排除客户端模型?

\n

Viv*_*shi 3

你可以通过两种方式做到这一点

User.findAll({
    attributes : ['User.*'] // might be user.* or users.* . as per your query genetaion
    include: [{
        model: Client,
        where: {
            id: "1"
        }
    }]
});

//OR

{
  attributes: {
    include: [], // define columns that you want to show
    exclude: [] // define columns that you don't want 
  }
}
Run Code Online (Sandbox Code Playgroud)