Sequelize.js Sequelize急切加载检查查询(例如:它有…?)

Sequelize.js Sequelize急切加载检查查询(例如:它有…?),sequelize.js,Sequelize.js,我想获取用户名为“john”的项目 Project.belongsToMany(User, {through: 'UserProject'}); User.belongsToMany(Project, {through: 'UserProject'}); 我想要结果数据 include: [ { model: model.User, where: { name: 'john' }, },

我想获取用户名为“john”的项目

Project.belongsToMany(User, {through: 'UserProject'});
User.belongsToMany(Project, {through: 'UserProject'});
我想要结果数据

        include: [
          {
            model: model.User,
            where: { name: 'john' },
          },
        ],
但是它给了我

[
    name: 'proejectA',
    Users: [
        { name: 'john' }, { name: 'mike' }, { name: 'dude' } ...
    ]
]
我想与整个用户的项目,有一个名为'约翰'的用户


可以查询吗?

您不能简单地实现这一点,但有一种方法可以做到:

为此,您必须定义另一个与
别名的关联,以及另一个
包含的关联

[
    name: 'proejectA',
    Users: [
        { name: 'john' }
    ]
]

如果在include中添加where条件(where:{name:'john'}),它将返回名称为的用户john@Priyank事实上,我希望项目中有一个名为john的用户和整个用户,但它只返回一个名为john的用户。
Project.belongsToMany(User, {through: 'UserProject'});
User.belongsToMany(Project, {through: 'UserProject'});
User.belongsToMany(Project, {through: 'UserProject',as: 'projectUsers'}); // <--- HERE

include: [
    {
        model: model.User,
        where: {
            name: 'john'
        }
    },
    {
        model: model.User,
        as : 'projectUsers'
    } 
],
[
    name: 'proejectA',
    projectUsers: [
        { name: 'john' }, { name: 'mike' }, { name: 'dude' } ...
    ],
    Users: [
        { name: 'john' }
    ]
]