Я использую Op.не в sequilize, и я хочу использовать or между теми же полями

#node.js #sequelize.js

#node.js #sequelize.js

Вопрос:

Я использую ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ в sequilize, и я хочу использовать или между profilePicture: ‘public/uploads/default/default-male.png’ и profilePicture: ‘public/uploads/default/default-female.png’

 return models.Users.findAll({
        where: {userType:'engineer'},
        include: [
            { model: models.CandidateDetails, as: "CandidateDetails",
            where: { [Op.not]: 
                [{ profilePicture : 'public/uploads/default/default-male.png'}, {profilePicture :'public/uploads/default/default-female.png'}
                                ]}, required: false }
            ]
      });
 

В этом я получаю вывод

 `CandidateDetails`.`user_id` AND NOT (`CandidateDetails`.`profile_picture` = 'public/uploads/default/default-male.png' AND `CandidateDetails`.`profile_picture` LIKE 'public/uploads/default/default-female.png')
 

Ответ №1:

Просто используйте Op.or внутри Op.not , как это:

 where: { [Op.not]: 
    { [Or.or]: [{ profilePicture : 'public/uploads/default/default-male.png'}, { profilePicture :'public/uploads/default/default-female.png' }
                                ]
    }},
    required: false
}
 

Комментарии:

1. Вы получили желаемый SQL-запрос?